public interface EbtTransfer
A folyamatok felhasználják az ügyfél által implementált kliens oldali szolgáltatásokat, melyeket az ügyfélnek a
ClientBackend és ClientStorage
interfészeken keresztül kell biztosítania.
Egy-egy példánya egy adott felhasználó több csatornájának tárhelyét képes kezelni. Mivel a tanúsítvány (aláíró, autentikációs) paramétereket globálisan lehet megadni property állományban, ezért egy JVM példány egy EbtTransfer példányt futtathat.
| Modifier and Type | Method and Description |
|---|---|
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ány lista letöltése és mentése diagnosztikai célból.
|
void |
encryptTest(String channelName,
VPEnvelopeHeader replyHeaderTemplate)
Titkosítás beállítások üzemeltetői tesztje: üzenet titkosítása és titkosítás feloldása.
|
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 |
signTest(String channelName,
VPEnvelopeHeader replyHeaderTemplate)
Aláírás beállítások üzemeltetői tesztje: üzenet aláírása és ellenőrzése.
|
boolean |
upload(String messageIDRaw)
Üzenet feltöltése folyamat.
|
void clearCertificateCache()
Az 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.
void connectionTest()
A 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.
String download(String channelName, VPEnvelopeHeader replyHeaderTemplate)
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.
channelName - 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.
InternalExceptionUserExceptionMessageExceptionEnvironmentExceptionvoid processDownloaded(String messageIDRaw, VPEnvelopeHeader replyHeaderTemplate)
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.
messageIDRaw - 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:117InternalExceptionUserExceptionMessageExceptionEnvironmentExceptionvoid prepareForUpload(String messageIDRaw, VPEnvelopeHeader replyHeaderTemplate)
A 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.
messageIDRaw - 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:117InternalExceptionUserExceptionMessageExceptionEnvironmentExceptionboolean upload(String messageIDRaw)
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.
messageIDRaw - A feltöltendő üzenet azonosítója, lásd: VPEnvelopeHeader.messageIDRawClientStorage.saveUploadableEnvelopedMessage nem is enged meg).InternalExceptionUserExceptionMessageExceptionEnvironmentExceptionvoid signTest(String channelName, VPEnvelopeHeader replyHeaderTemplate)
A folyamatban az aláíró modul az ügyfél aláíró tanúsítványával aláír és időbélyeggel lát el egy belső üzenetet, majd az leellenőrzi az aláírást. Az ellenőrzés előtt letölti a NAV aláíró tanúsítványait is, de csak azért, hogy kiderüljön, hogy a NAV aláíró tanúsítványok elérhetőek-e.
Ha a teszt sikerül, akkor az aláírással kapcsolatos beállítások rendben lehetnek, valamint a NAV aláíró tanúsítványa is elérhető a webszolgáltatáson keresztül. A teszt annyiban eltér az adatcsere folyamatokban használt lépésektől, hogy ott az aláírás ellenőrzés a NAV által aláírt üzenetet, míg ez a teszt az ügyfél által aláírt üzenetet ellenőrzi. Emiatt az aláírás ellenőrzés nem a NAV aláíró tanúsítványainak visszavonási állapotait tölti le (CRL, OCSP) , hanem az ügyfél aláíró tanúsítványaiét, és így nem a NAV aláíró tanúsítványaihoz tartozó hitelesítés szolgáltatók felé nyit kapcsolatot, hanem az ügyfél aláíró tanúsítványához tartozó hitelesítés szolgáltató felé.
channelName - 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-1fcc34adebdbInternalExceptionUserExceptionMessageExceptionEnvironmentExceptionvoid encryptTest(String channelName, VPEnvelopeHeader replyHeaderTemplate)
A folyamatban a titkosító modul az ügyfél és a NAV titkosító tanúsítványával titkosít egy belső üzenetet, majd utána megpróbálja a titkosítás feloldani az ügyfél titkosító tanúsítványával.
Ha a teszt sikerül, akkor a titkosítással kapcsolatos beállítások rendben vannak, valamint a NAV titkosító tanúsítványa is elérhető a webszolgáltatáson keresztül.
channelName - 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-1fcc34adebdbInternalExceptionUserExceptionMessageExceptionEnvironmentExceptionvoid downloadCertificates(String channelName)
Az SDK feldolgozási folyamatai futási időben mindig letöltik a NAV tanúsítványait, de ha az ügyfél szeretné
ténylegesen is látni a webszolgáltatás felületen elérhető NAV tanúsítványokat, akkor ezzel a metódussal le
is tudja menteni őket. Az ügyfél oldlaán történő mentéshez a ClientStorage.saveDownloadedCertificates metódust használja.
channelName - Csatorna technikai neve: a hozzá rendelt tanúsítványokat fogja letölteni.InternalExceptionUserExceptionMessageExceptionEnvironmentExceptionvoid clientStorageTest()
ClientStorageré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.
void clientBackendTest()
ClientBackendré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.
Copyright © 2023. All rights reserved.