Der Receipt Service validiert die Eingangsbestätigung des Marktpartners und erstellt Eingangsbestätigungen als Response für erhaltene AS Nachrichten.
Einfache Konfiguration der as4-receipt-service.properties
Die Kommunikation zwischen den verschiedene AS4 Services erfolgt über einen Message-Broker.
#=== RabbitMQ Con
rabbitmq.host=localhost
rabbitmq.port=5672
rabbitmq.username=guest
rabbitmq.password=guest
Der Outbound Receipt
Über diesen Consumer werden eingehende Receipts vom Crypto Operations in der Queue as4.receipt.parse.default entgegengenommen, welche der AS4 Outbound Sender vom Marktpartner erhalten hat und diesen an den Crypto Operations weitergeleitet hat.
receiptParseExchangeName=as4.receipt.parse
Der Inbound Receipt
Dieser Consumer empfängt über die Queue as4.receipt.create.default die AS4 Nachricht (in diesem Kontext auch als Business Message bekannt) vom Crypto Operations, welcher diese vom AS4 Inbound Endpoint erhalten hat, um dafür eine Empfangsbestätigung zu generieren.
receiptCreateExchangeName=as4.receipt.create
Versenden der Empfangsbestätigung zur Persistierung
Mit dem Producer wird die vom AS4 Outbound Sender empfangene Bestätigung an den AS4 Message Service zum Speichern versendet. Der Name der Queue ist as4.receipt.default.
receiptExchangeName=as4.receipt
Versenden der Business Message
Der Producer versendet die vom Marktpartner eingegangene AS4 Nachricht als Business Message zum Speichern an den AS4 Message Service. Die Queue heißt as4.messages.default.
businessMessageExchangeName=as4.messages
Signieren der Empfangsbestätigung
Der Producer versendet über as4.sign.default die erstellte Bestätigung an den Crypto Operations zwecks Anbringung der Signatur.
createdReceiptExchangeName=as4.sign
Der Marktpartner bestätigt unsere Adressänderung
Mit dem Pathswitch Provider wird die Annahme der Adressänderung des Tenants vom Marktpartner bestätigt. Diese Bestätigung geht über die Queue as4.outbound.pathswitch.default an den AS4 Address Service.
pathswitchConfirmationExchangeName=as4.outbound.pathswitch
Negative verifizierte Empfangsbestätigungen
Mit dieser Error Queue as4.neg.verified.receipt.default werden die Receipts gesammelt, welche zwar gültig sind aber einen negativen Empfangsstatus ausweisen. Wenn zu einer versenden Nachricht keine Bestätigung in der B2B oder im AS4 Message Service auffindbar ist, dann wird sie hier zu finden sein.
negativeVerifiedReceiptExchangeName=as4.neg.verified.receipt
Nicht erstellbare Empfangsbestätigungen
Diese Error Queue as4.received.neg.receipt.not.restartable enthält die negativen Receipts, die bei der Erstellung Fehler aufgeworfen haben.
negativeReceiptExchangeName=as4.received.neg.receipt.not.restartable
Um zu einer eingehenden Nachricht ein Receipt zu erstellen, wird die Nachricht vorerst validiert. Zur Validierung sind die folgenden Parameter erforderlich. Wichtig ist hier, für die Variable expectedSystems die Receiver, also die Mandanten selbst einzutragen, damit geprüft werden kann, ob der Marktpartner auch an den richtigen Mandanten geantwortet hat. Um die Validierung auf den Receiver/Mandanten zu überspringen, kann der Wert leer gelassen, oder die Property entfernt werden.
Die weiteren Prüfungskategorien sind AS4 Protokoll spezifisch und sollten von einem Fachmann verändert werden. ServiceId gibt dabei den Service aus dem Header der AS4 Message an und ActionId die Action aus dem Header.
expectedSystems=9907647000008,9903111000003,9900051000002
expectedGasServiceIds=A02
expectedElectricityServiceIds=http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service,https://www.bdew.de/as4/communication/services/pathSwitch
expectedGasActionIds=http://docs.oasis-open.org/ebxml-msg/as4/200902/action,http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test
expectedElectricityActionIds=http://docs.oasis-open.org/ebxml-msg/as4/200902/action,https://www.bdew.de/as4/communication/actions/requestSwitch,https://www.bdew.de/as4/communication/actions/confirmSwitch,http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test
Routing Konfiguration der as4-receipt-service.properties
Für die Aktivierung des Routings müssen der headerName und die headerValues gesetzt werden. Den headerName kann man sich als Filterkategorie vorstellen, während die headerValues den zu filternden Werten entsprechen. Nachrichten mit Werten, die nicht explizit als headerValues aufgelistet sind, laufen weiterhin über die default Route.
Als headerName werden folgende Parameter angeboten:
- tenant: ILN Nummer des Senders
- partner: ILN Nummer des Empfängers.
- sector: GAS, ELECTRICITY
Es können mehrere Werte kommasepariert angegeben werden.
receiptExchangeName=as4.receipt
receiptHeaderName=tenant
receiptHeaderValues=
businessMessageExchangeName=as4.messages
businessMessageHeaderName=tenant
businessMessageHeaderValues=
createdReceiptExchangeName=as4.sign
createdReceiptHeaderName=tenant
createdReceiptHeaderValues=
pathswitchConfirmationExchangeName=as4.outbound.pathswitch
pathswitchConfirmationHeaderName=tenant
pathswitchConfirmationHeaderValues=
negativeVerifiedReceiptExchangeName=as4.neg.verified.receipt
negativeVerifiedReceiptHeaderName=tenant
negativeVerifiedReceiptHeaderValues=
negativeReceiptExchangeName=as4.received.neg.receipt.not.restartable
negativeReceiptHeaderName=tenant
negativeReceiptHeaderValues=
Wird der Producer für das Routing konfiguriert muss natürlich auch die Gegenstelle dafür eingerichtet werden. Dem Consumer wird über die Gruppe der Wert (Value) aus der HeaderValues Liste zugewiesen nach welchem gefiltert werden soll. Bitte den Default Wert nur ändern, wenn Routing verwendet werden soll.
receiptParseExchangeName=as4.receipt.parse
receiptParseGroup=default
receiptCreateExchangeName=as4.receipt.create
receiptCreateGroup=default
REST API Dokumenation
Die Beschreibung der REST API lässt sich, im Fall einer Docker Installation, unter
http://host.docker.internal:8095/aep-as4-receipt-service/swagger-ui/index.html
oder unter
http://localhost:8080/aep-as4-receipt-service/swagger-ui/index.html
finden.
View Me Edit Me