public class EbtTransferImpl extends Object implements EbtTransfer, org.springframework.beans.factory.InitializingBean
| Constructor and Description |
|---|
EbtTransferImpl() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
void |
clearCertificateCache()
NAV aláíró és NAV titkosító tanúsítvány cache törlése.
|
void |
clientBackendTest()
ClientBackendréteg kapcsolati tesztje folyamat. |
void |
clientStorageTest()
ClientStorageréteg kapcsolati tesztje folyamat. |
void |
connectionTest()
Kapcsolati teszt folyamat.
|
String |
download(String channelName,
VPEnvelopeHeader replyHeaderTemplate)
Üzenet letöltése folyamat.
|
void |
downloadCertificates(String channelName)
NAV tan�s�tv�nyok let�lt�se
|
void |
encryptTest(String channelName,
VPEnvelopeHeader replyHeaderTemplate)
Titkos�t�s-kibont�s teszt
|
hu.gov.nav.ebt.common.validation.asic.AsicFormatCheck |
getAsicFormatCheck() |
hu.gov.nav.ebt.common.logic.BinaryDataLogic |
getBinaryDataLogic() |
Integer |
getCacheTime() |
ClientBackend |
getClientBackend() |
ClientStorage |
getClientStorage() |
DataSourceFactory |
getDataSourceFactory() |
hu.gov.nav.ebt.common.logic.DecrypterLogic |
getDecrypterLogic() |
hu.gov.nav.ebt.common.logic.EncrypterLogic |
getEncrypterLogic() |
String |
getHashAlgorithm() |
hu.gov.nav.ebt.common.logic.HashLogic |
getHashLogic() |
org.springframework.context.MessageSource |
getMessageSource() |
String |
getNovalidate() |
org.springframework.core.io.Resource |
getSampleXml() |
hu.gov.nav.ebt.common.logic.SignerLogic |
getSignerLogic() |
Integer |
getUploadMaxSegmentSize() |
hu.gov.nav.ebt.common.logic.ValidationLogic |
getValidationLogic() |
VPEnveloper |
getVpEnveloper() |
org.springframework.core.io.Resource |
getVpEnvelopeXsd() |
WsClientLogic |
getWsClientLogic() |
hu.gov.nav.ebt.common.logic.ZipExtractLogic |
getZipExtractLogic() |
void |
prepareForUpload(String messageIDRaw,
VPEnvelopeHeader replyHeaderTemplate)
Üzenet előkészítése feltöltésre folyamat.
|
void |
processDownloaded(String messageIDRaw,
VPEnvelopeHeader replyHeaderTemplate)
Letöltött üzenet feldolgozása folyamat.
|
void |
setAsicFormatCheck(hu.gov.nav.ebt.common.validation.asic.AsicFormatCheck asicFormatCheck) |
void |
setBinaryDataLogic(hu.gov.nav.ebt.common.logic.BinaryDataLogic binaryDataLogic) |
void |
setCacheTime(Integer cacheTime) |
void |
setClientBackend(ClientBackend clientBackend) |
void |
setClientStorage(ClientStorage clientStorage) |
void |
setDataSourceFactory(DataSourceFactory dataSourceFactory) |
void |
setDecrypterLogic(hu.gov.nav.ebt.common.logic.DecrypterLogic decrypterLogic) |
void |
setEncrypterLogic(hu.gov.nav.ebt.common.logic.EncrypterLogic encrypterLogic) |
void |
setHashAlgorithm(String hashAlgorithm) |
void |
setHashLogic(hu.gov.nav.ebt.common.logic.HashLogic hashLogic) |
void |
setMessageSource(org.springframework.context.MessageSource messageSource) |
void |
setNovalidate(String novalidate) |
void |
setSampleXml(org.springframework.core.io.Resource sampleXml) |
void |
setSignerLogic(hu.gov.nav.ebt.common.logic.SignerLogic signerLogic) |
void |
setUploadMaxSegmentSize(Integer uploadMaxSegmentSize) |
void |
setValidationLogic(hu.gov.nav.ebt.common.logic.ValidationLogic validationLogic) |
void |
setVpEnveloper(VPEnveloper vpEnveloper) |
void |
setVpEnvelopeXsd(org.springframework.core.io.Resource vpEnvelopeXsd) |
void |
setWsClientLogic(WsClientLogic wsClientLogic) |
void |
setZipExtractLogic(hu.gov.nav.ebt.common.logic.ZipExtractLogic zipExtractLogic) |
void |
signTest(String channelName,
VPEnvelopeHeader replyHeaderTemplate)
Al��r�s teszt
|
boolean |
upload(String messageIDRaw)
Üzenet feltöltése folyamat.
|
public void setMessageSource(org.springframework.context.MessageSource messageSource)
public org.springframework.context.MessageSource getMessageSource()
public void setWsClientLogic(WsClientLogic wsClientLogic)
public WsClientLogic getWsClientLogic()
public void setSignerLogic(hu.gov.nav.ebt.common.logic.SignerLogic signerLogic)
public hu.gov.nav.ebt.common.logic.SignerLogic getSignerLogic()
public void setZipExtractLogic(hu.gov.nav.ebt.common.logic.ZipExtractLogic zipExtractLogic)
public hu.gov.nav.ebt.common.logic.ZipExtractLogic getZipExtractLogic()
public void setEncrypterLogic(hu.gov.nav.ebt.common.logic.EncrypterLogic encrypterLogic)
public hu.gov.nav.ebt.common.logic.EncrypterLogic getEncrypterLogic()
public void setDecrypterLogic(hu.gov.nav.ebt.common.logic.DecrypterLogic decrypterLogic)
public hu.gov.nav.ebt.common.logic.DecrypterLogic getDecrypterLogic()
public void setClientBackend(ClientBackend clientBackend)
public ClientBackend getClientBackend()
public void setClientStorage(ClientStorage clientStorage)
public ClientStorage getClientStorage()
public void setHashLogic(hu.gov.nav.ebt.common.logic.HashLogic hashLogic)
public hu.gov.nav.ebt.common.logic.HashLogic getHashLogic()
public void setBinaryDataLogic(hu.gov.nav.ebt.common.logic.BinaryDataLogic binaryDataLogic)
public hu.gov.nav.ebt.common.logic.BinaryDataLogic getBinaryDataLogic()
public void setValidationLogic(hu.gov.nav.ebt.common.logic.ValidationLogic validationLogic)
public hu.gov.nav.ebt.common.logic.ValidationLogic getValidationLogic()
public void setHashAlgorithm(String hashAlgorithm)
public String getHashAlgorithm()
public void setVpEnvelopeXsd(org.springframework.core.io.Resource vpEnvelopeXsd)
public org.springframework.core.io.Resource getVpEnvelopeXsd()
public void setNovalidate(String novalidate)
public String getNovalidate()
public void setSampleXml(org.springframework.core.io.Resource sampleXml)
public org.springframework.core.io.Resource getSampleXml()
public void setCacheTime(Integer cacheTime)
public Integer getCacheTime()
public void setAsicFormatCheck(hu.gov.nav.ebt.common.validation.asic.AsicFormatCheck asicFormatCheck)
public hu.gov.nav.ebt.common.validation.asic.AsicFormatCheck getAsicFormatCheck()
public void setDataSourceFactory(DataSourceFactory dataSourceFactory)
public DataSourceFactory getDataSourceFactory()
public void setUploadMaxSegmentSize(Integer uploadMaxSegmentSize)
public Integer getUploadMaxSegmentSize()
public void setVpEnveloper(VPEnveloper vpEnveloper)
public VPEnveloper getVpEnveloper()
public void afterPropertiesSet()
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanpublic void connectionTest()
EbtTransferA folyamat megpróbálja meghívni a KKK2 webszolgáltatásának ConnectionTest() metódusát. Ha a hívás sikerül, akkor a kliens eléri a KKK2 webszolgáltatását hálózaton keresztül, valamint az autentikációs adatokat (kliens autentikációs tanúsítványt) megfelelően adta meg, azokat a szerver elfogadta, és a felhasználót sikeresen azonosította.
Az ügyfél alkalmazásából önállóan hívhatónak kell lenni a kapcsolati tesztnek.
connectionTest in interface EbtTransferpublic void clearCertificateCache()
EbtTransferAz adott csatornára vonatkozó érvényes NAV aláíró és NAV titkosító tanúsítványokat az SDK a webszolgáltatás felületen keresztül tölti le, melyeket utána cache-ben tárol.
clearCertificateCache in interface EbtTransferpublic String download(String channelName, VPEnvelopeHeader replyHeaderTemplate)
EbtTransfer
A folyamat a felhasználó megadott csatornájához tartozó KKK2 tárhelyről letölti a következő üzenetet,
és lementi a ClientStorage.saveDownloadedEnvelopedMessage
metódussal a helyi tárhelyre. A mentés után az üzenetet törli a KKK2 tárhelyről.
Ha a törlés tértivevényt igényel, akkor előtte elkészíti és aláírja a letöltött üzenetről szóló tértivevényt, és
azt átadja a webszolgáltatás Delete() hívásának.
Az átadott tértivevényt ClientStorage.saveUploadedEnvelopedMessage metódussal
menti el ügyfél oldalon.
A tárhelyen levő üzenetek letöltését egész addig kell folytatni ciklusban, amíg van letöltendő üzenet. Ha a letöltendő üzenetek elfogytak, akkor 60 másodpercig várakozni kell, és utána lehet újra a letöltést megpróbálni.
A folyamatnak csatornánként egy-egy szálon kell futnia, mivel egy adott felhasználó adott csatornához tartozó tárhelyét queue-ként olvassa a kliens.
Figyelem! A többi folyamattal ellentétben az itt használt adatbázis műveletek eredményének azonnal tárolódniuk kell az adatbázisban, mivel a letöltött üzenetet csak akkor törölheti a tárhelyről a kliens, ha azt le is mentette, és COMMIT-olta. Emiatt jelen metódus hívója nem nyithat tranzakciót, és nem vonhatja visssza a metódus által végzett adatbázis műveleteket. Az innen hívott adatbázis műveletekre a REQUIRED tranzakcionális viselkedés vonatkozik, tehát önállóan tudnak tranzakciót használni.
download in interface EbtTransferchannelName - Csatorna technikai nevereplyHeaderTemplate - Válaszüzenet boríték fejléc adatok a tértivevény készítéséhez
Megadandó VPEnvelopeHeader adatok:
from: küldő felhasználó. pl.: user:10000352onBehalfOf: képviselet . pl.: egyebazon:117VPEnvelopeHeader.messageIDRaw
Amennyiben nem talált letöltendő üzenetet, akkor az értéke null.
public void processDownloaded(String messageIDRaw, VPEnvelopeHeader replyHeaderTemplate)
EbtTransfer
A folyamat először beolvassa a letöltött üzenetet a ClientStorage.loadDownloadedEnvelopedMessage metóduson keresztül, az üzenet boríték fejlécet kiolvassa, a kiolvasott fejléc adatokat a
ClientStorage.setDownloadedEnvelopedMessageHeader
metódussal elmenti, majd a kiolvasott üzenettípus alapján a megfelelő üzenetfeldolgozási feladatokat elvégzi, és végül a ClientBackend interfész
megfelelő metódusán keresztül értesíti a szakmai rendszert az üzenet feldolgozásáról.
Ha a boríték fejlécet nem sikerült kiolvasni, akkor szakmai rendszert a ClientBackend.processVPFault
metóduson keresztül értesíti.
Az üzenettípusonként végzett műveletek:
KKK2 hibaüzenet (VPFault):
ClientStorage.loadUploadedEnvelopedMessage hívással
a korábban feltöltött előzmény borítékolt üzenet betöltését kéri.
ClientBackend.processVPFault hívással, hogy a
boríték fejlécben a relatesToRaw, vagyis a
hivatkozott üzenet azonosítója a szakmai rendszer által küldött összeállított szakmai üzenetre vonatkozzon.
ClientBackend.processVPFault metódust a
hibaüzenet boríték fejléc adataival, mivel azok az összeállított szakmai üzenetre vonatkoznak.
MessageException keletkezett,
akkor értesíti a szakmai rendszert a hibáról a
ClientBackend.processMessageFault metódus meghívásával.
KKK2 nyugtaüzenet (NAVReceipt):
ClientStorage.loadUploadedEnvelopedMessage metódussal beolvasott
előzmény feltöltött borítékolt üzenetre kiszámolt lenyomat értékkel.
ClientStorage.setUploadedEnvelopedMessageReceiptStatus
metódussal elmenti az előzmény feltöltött borítékolt üzenetdarabra vonatkozóan, hogy rá nyugta érkezett válaszul. Utána a
ClientStorage.listUploadedEnvelopedMessageReceiptStatuses
metódussal lekérdezi az összetartozó feltöltött borítékolt üzenetdarabokra érkezett-e ilyen típusú nyugta.
Ha minden feltöltött üzenetdarab nyugtázva volt, akkor értesíti a szakmai rendszert a
ClientBackend.processNAVReceipt metóduson keresztül az első üzenetdarabra,
vagyis az összeállított szakmai üzenetre vonatkozó nyugtával.
ClientStorage.setUploadedEnvelopedMessageReceiptStatus
metódussal elmenti az előzmény feltöltött borítékolt üzenetre vonatkozóan, hogy rá nyugta érkezett válaszul, majd értesíti a szakmai rendszert a
ClientBackend.processNAVReceipt metóduson keresztül a szakmai üzenetre vonatkozó nyugtával.
MessageException keletkezett,
akkor tértivevény esetén KKK2 hibaüzenetet (VPFault) üzenetet küld a KKK2 felé a ClientStorage.saveUploadableBusinessMessage
metóduson keresztül, majd tértivevény és feladóvevény esetén is értesíti a szakmai rendszert a hibáról a
ClientBackend.processMessageFault metódus meghívásával.
Feladóvevény hibája esetén nem küld hibaüzenet, azért, hogy a hibaüzenetre válaszul visszakapott feladóvevény miatt ne alakulhasson ki végtelen üzenet kör.
KKK2 kommunikációs tesztüzenet (VPCommunicationTest), szakmai nyugtaüzenet (VPAppReceipt), szakmai üzenet esetén:
ClientStorage.saveDownloadedSegment metódussal.
Utána a
ClientStorage.listDownloadedSegments metódus
által visszaadott listában ellenőrzi, hogy minden összetartozó üzenetdarab megérkezett-e a most feldolgozott üzenet kapcsán.
Ha nem érkezett minden üzenetdarab, akkor a feldolgozás véget ér, mivel meg kell várni őket.
Ha minden üzenetdarab megérkezett, akkor
ClientStorage.loadDownloadedSegment metódus
segítségével betölti az egyes titkosítatlan üzenetdarabokat, összeállítja a teljes titkosítatlan üzenetet, mely ASiC-E formátumú aláírás tároló lesz (Zip file).
Ezután az összeállított üzeneten aláírás ellenőrzést végez.
ClientStorage.saveUploadableBusinessMessage
metódusán keresztül, és értesíti a szakmai rendszert ClientBackend.processVPCommunicationTest metóduson keresztül.
ClientBackend.processVPAppReceipt metóduson keresztül.
ClientBackend.processBusinessMessage metóduson keresztül.
MessageException keletkezett,
akkor KKK2 hibaüzenetet (VPFault) üzenetet küld a KKK2 felé a
ClientStorage.saveUploadableBusinessMessage
metóduson keresztül, és értesíti a szakmai rendszert a hibáról a
ClientBackend.processMessageFault metódus meghívásával.
A folyamatnak egy szálon kell futnia, mivel mindegyik csatorna feldolgozásáért felel.
processDownloaded in interface EbtTransfermessageIDRaw - A letöltött üzenet azonosítója, lásd: VPEnvelopeHeader.messageIDRawreplyHeaderTemplate - Válaszüzenet boríték fejléc adatok a válasz készítéséhez
Megadandó VPEnvelopeHeader adatok:
from: küldő felhasználó. pl.: user:10000352onBehalfOf: képviselet . pl.: egyebazon:117public void prepareForUpload(String messageIDRaw, VPEnvelopeHeader replyHeaderTemplate)
EbtTransferA folyamat számára feldolgozandó üzenetet a szakmai rendszer a ClientStorage.saveUploadableBusinessMessage metóduson keresztül tud küldeni.
A folyamat először beolvassa az előkészítendő üzenet adatait a ClientStorage.loadUploadableBusinessMessage metóduson keresztül, majd a boríték fejléc adatok alapján eldönti, hogy
KKK2 hibaüzenetről (VPFault) van-e szó.
Ha a feldolgozandó üzenet KKK2 hibaüzenet (VPFault), akkor az üzenetet borítékolja, és ClientStorage.saveUploadableEnvelopedMessage metóduson keresztül az upload folyamatnak átadja.
Ha a feldolgozandó üzenet más, akkor azt aláírja az ügyfél aláíró tanúsítványával, majd az így előállt ASiC-E formátumú aláírás tárolót (Zip file)
feldarabolja a beállításoknak megfelelő méretűre. Ezután az üzenetdarabokat egyenként titkosítja az ügyfél és a NAV titkosító tanúsítványaival, borítékolja, majd a
ClientStorage.saveUploadableEnvelopedMessage
metóduson keresztül az upload folyamatnak átadja.
A folyamatnak egy szálon kell futnia, mivel mindegyik csatorna feldolgozásáért felel.
prepareForUpload in interface EbtTransfermessageIDRaw - Az előkészítendő üzenet azonosítója, lásd: VPEnvelopeHeader.messageIDRawreplyHeaderTemplate - Válaszüzenet boríték fejléc adatok a tértivevény készítéséhez
Megadandó VPEnvelopeHeader adatok:
from: küldő felhasználó. pl.: user:10000352onBehalfOf: képviselet . pl.: egyebazon:117public boolean upload(String messageIDRaw)
EbtTransfer
A folyamat először beolvassa a feltöltendő üzenetet a ClientStorage.loadUploadableEnvelopedMessage metóduson keresztül, feltölti a webszolgáltatás Upload() hívásával,
majd ClientStorage.saveUploadedEnvelopedMessage metóduson keresztül elmenti a feltöltött üzenetet.
Amennyiben a feltöltés KKK2 nyugtaüzenetet (NAVReceipt / feladóvevényt) adott válaszul vissza, akkor azt a
ClientStorage.saveDownloadedEnvelopedMessage metóduson keresztül a processDownloaded folyamatnak átadja.
A folyamatnak egy szálon kell futnia, mivel mindegyik csatorna feldolgozásáért felel.
upload in interface EbtTransfermessageIDRaw - A feltöltendő üzenet azonosítója, lásd: VPEnvelopeHeader.messageIDRawClientStorage.saveUploadableEnvelopedMessage nem is enged meg).public void signTest(String channelName, VPEnvelopeHeader replyHeaderTemplate)
signTest in interface EbtTransferchannelName - Csatorna technikai neve: a hozzá rendelt NAV tanúsítványokat fogja letölteni.replyHeaderTemplate - Technikai adatok
Megadandó VPEnvelopeHeader adatok:
messageIDRaw: belső üzenet azonosítója (ezzel az azonosítóvl fogja naplózni). pl.: 66ce7457-e78b-4198-afce-1fcc34adebdbpublic void encryptTest(String channelName, VPEnvelopeHeader replyHeaderTemplate)
encryptTest in interface EbtTransferchannelName - Csatorna technikai neve: a hozzá rendelt NAV tanúsítványokat fogja letölteni.replyHeaderTemplate - Technikai adatok
Megadandó VPEnvelopeHeader adatok:
messageIDRaw: belső üzenet azonosítója (ezzel az azonosítóvl fogja naplózni). pl.: 66ce7457-e78b-4198-afce-1fcc34adebdbpublic void downloadCertificates(String channelName)
downloadCertificates in interface EbtTransferchannelName - public void clientStorageTest()
EbtTransferClientStorageréteg kapcsolati tesztje folyamat.
A folyamat megpróbálja meghívni a ClientStorage.clientStorageTest metódusát.
Ha a hívás sikerül, akkor a kliens az ClientStorage adatbázisát el tudja érni.
Az ügyfél alkalmazásából önállóan hívhatónak kell lenni a tesztnek.
clientStorageTest in interface EbtTransferpublic void clientBackendTest()
EbtTransferClientBackendréteg kapcsolati tesztje folyamat.
A folyamat megpróbálja meghívni a ClientBackend.clientStorageTest metódusát.
Ha a hívás sikerül, akkor a kliens az ClientBackend adatbázisát el tudja érni.
Az ügyfél alkalmazásából önállóan hívhatónak kell lenni a tesztnek.
clientBackendTest in interface EbtTransferCopyright © 2026. All rights reserved.