diff --git a/pom.xml b/pom.xml index 2b1b32b74fd86c23ffb8c5a8634d620b8d9751d5..6700efd0eea5a870c0645e98191d1eb2fff10f02 100644 --- a/pom.xml +++ b/pom.xml @@ -36,15 +36,15 @@ <groupId>de.ozgcloud.eingang</groupId> <artifactId>xta-adapter</artifactId> - <version>2.18.0-SNAPSHOT</version> + <version>2.19.0-SNAPSHOT</version> <name>XTA-Adapter</name> <description>Eingangs Adapter - XTA</description> <properties> - <eingang-manager.version>2.17.0</eingang-manager.version> - <intelliform-semantik.version>2.17.0</intelliform-semantik.version> - <dfoerdermittel-semantik.version>2.17.0</dfoerdermittel-semantik.version> + <eingang-manager.version>2.18.0</eingang-manager.version> + <intelliform-semantik.version>2.18.0</intelliform-semantik.version> + <dfoerdermittel-semantik.version>2.18.0</dfoerdermittel-semantik.version> <xta-client-lib.version>0.2.0</xta-client-lib.version> <xmlschema.version>2.3.0</xmlschema.version> @@ -87,11 +87,6 @@ <artifactId>dfoerdermittel-semantik</artifactId> <version>${dfoerdermittel-semantik.version}</version> </dependency> - <dependency> - <groupId>de.ozgcloud.xta</groupId> - <artifactId>xta-client-lib</artifactId> - <version>${xta-client-lib.version}</version> - </dependency> <!-- Spring --> <dependency> diff --git a/readme.md b/readme.md index 86a1f9338e7831a8af8c7b4202815531260d25e4..5046288522c62fdb89b3b72805f790a1f7b995ee 100644 --- a/readme.md +++ b/readme.md @@ -1,48 +1,73 @@ -# Keystore passwort +# XTA-Adapter +Der XTA-Adapter empfängt Anträge von Online-Diensten via XTA-Nachrichtenbroker und erzeugt für diese Anträge neue Vorgänge im Vorgang-Manager. -Das Keystore und Passwort müssen extra hinzugefügt werden. Keystore irgendwo im Dateisystem ablegen. -Dazu eine Datei 'application-sec.yml' anlegen: +Der XTA-Adapter läuft als cronjob und beendet sich, nachdem alle unterstützten Anträge vom XTA-Nachrichtenbroker (XTA-Server) abgeholt wurden. +Jeder Antrag erzeugt einen neuen Vorgang im Vorgang-Manager. (Der Mantelantrag ist eine Ausnahme und kann mehrere Vorgänge erzeugen.) -ozgcloud: - xta: - keystore: - store: file:<pfad zum keystore> - password: <geheim> - -Den Dienst dann mit dem Spring-Profile 'sec' starten. -# P12 Datei erzeugen und als Umgerbungsvariable umwandeln +## Konfiguration vom Helm-Chart +Die Standardeinstellung ist, dass der Adapter alle 5 Minuten startet: +```yaml +xta: + schedule: '*/5 * * * *' +``` -Wir haben eine pfx Datei bekommen und wandeln diese in eine P12 Cert Datei um: +Es sollten Xta-Kennungen konfiguriert werden, für die Nachrichten abgeholt werden sollen, beispielsweise: +```yaml +identifiers: + - gae:meinekennung1@ozg-cloud.de + - vbe:123456789 +``` - keytool -importkeystore -srckeystore KOP_SH_KIEL_DEV.pfx -srcstoretype pkcs12 -destkeystore KOP_SH_KIEL_DEV.p12 -deststoretype PKCS12 +Es wird ein `vorgang-manger` Service im Cluster angenommen: +```yaml +routing: + targetVorgangManagerName: vorgang-manager + fallbackStrategy: DENY + routingStrategy: SINGLE +``` -Dann in Base64 umwandeln, damit es als Umgebungsvariable gesetzt werden kann: +Die URL des XTA-Servers muss konfiguriert werden, beispielsweise: +```yaml +xta: + server: + name: xta-test-server + address: xta-test-server-ozg4094.dev.by.ozg-cloud.de + protocol: https +``` - base64 KOP_SH_KIEL_DEV.p12 +Der XTA-Adapter muss dem XTA-Server-Zertifikat vertrauen können. +Dafür muss ein Root-Zertifikat `xtaRootCa` (in Base64-Kodierung) konfiguriert werden: +```yaml +xta: + rootCa: LS0tLS1CRUdJTiBDRVJUSUZ... +``` -# Lokale Installation -Lokal das Root CA in keystore laden (https://ddatabox.dataport.de/public/download-shares/XUok5Wk3EDGWyYaoFGldOeJfGu0J8pke): +Der XTA-Adapter benötigt ein Client-Zertifikat, dass ihn zum Lesen der konfigurierten Xta-kennungen berechtigt. +Das Client-Zertifikat muss in einem P12-KeyStore (in Base64-Kodierung) abgelegt werden: +```yaml +xta: + keystore: + file: MIIFCwIBAzCCBMEG... + password: password +``` - sudo keytool -trustcacerts -keystore /lib/jvm/java-1.17.0-openjdk-amd64/lib/security/cacerts -storepass changeit -importcert -alias dataportRoot -file DataportRootCA02.crt +## Verwendung mit dem xta-test-server -Port forwarding aktivieren. Um eine Verbindung zum Nachrichtenbroker aufbauen zu können, muss diese über den Hetzner-Server geroutet werden: +Der xta-test-server erlaubt mit einem validen Client-Zertifikat beliebige Nachricht-Typen mit beliebigen Kennungen zu senden und zu empfangen. +Das CA-Zertifikat und Client-Zertifikat sollte aus dem entsprechenden Secrets des xta-test-servers heruntergeladen werden. - ssh -L 3000:[Hetzner-Server-IP]:443 ozg-sh.de (ggf ssh -L 0.0.0.0:3000:[Hetzner-Server-IP]:443 ozg-sh.de) +Nähere Information hierzu sind in der internen-Dokumentation zu finden: +- https://git.ozg-sh.de/ozgcloud-doc/dokumentation/src/branch/master/Entwicklungsumgebung/Beistellungen/xta-test-server-SoapUI/README.md +- https://git.ozg-sh.de/ozgcloud-doc/dokumentation/src/branch/master/Entwicklungsumgebung#xta-adapter -## Alternative Dataport Zertifikat Installation -Zertifikate direkt vom Endpunkt anfragen: +## Verwendung mit dem Dataport-DEV-Nachrichtenbroker +Der Dataport-DEV-nachrichtenbroker ist nur erreichbar aus dem Landes-Netz. +Um das Root-CA-Zertifikat `Dataport Root CA` zu erhalten, welches als `rootCa` konfiguriert werden kann, kann die Zertifikat-Kette direkt vom Endpunkt angefragt werden: ```shell openssl s_client -showcerts -connect li33-0005.dp.dsecurecloud.de:443 </dev/null ``` -und das `Dataport Root CA` Zertifikat unter `/etc/ssl/certs/dataport-root-ca.pem` abspeichern, dann `sudo update-ca-certificates` aufrufen. - -## deprecated - -DEPRECATED, da wir den HostNameVerifier deaktiviert haben: Hosts Datei erzeugen, damit der Hostname passt: - 127.0.0.1 LI33-0005 +Das Zertifikat kann ggf. lokal unter `/etc/ssl/certs/dataport-root-ca.pem` installiert werden mit `sudo update-ca-certificates`. -# SoapUi Projekt zum manuellen Abrufen des Nachrichtenbrokers -Im Dokumentation Repo unter `Entwicklungsumgebung/Beistellungen/soapUiXTA` liegt ein SoapUi Projekt, -dass manuelle XTA-Aufrufe des Nachrichtenbrokers ermöglicht. +Das Client-Zertifikat `KOP_SH_KIEL_DEV.p12`, das den Xta-Adapter zum Lesen von Xta-Kennungen berechtigt, muss beantragt werden. diff --git a/src/test/helm/xta_adapter_63_chars_test.yaml b/src/test/helm/xta_adapter_63_chars_test.yaml index 941883545d93772e6a349add7e60a8190e478629..dd9b5092d2f402a60f018280128266d24fded20c 100644 --- a/src/test/helm/xta_adapter_63_chars_test.yaml +++ b/src/test/helm/xta_adapter_63_chars_test.yaml @@ -36,21 +36,21 @@ templates: - templates/xta_adapter_cronjob.yaml tests: + - it: should not fail on .Release.Namespace length less than 63 characters + asserts: + - notFailedTemplate: { } - it: should fail on .Release.Namespace length longer than 63 characters release: namespace: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 asserts: - failedTemplate: errorMessage: .Release.Namespace test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen) - - it: should not fail on .Release.Namespace length less than 63 characters + - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters asserts: - - notFailedTemplate: {} + - notFailedTemplate: { } - it: should fail on .Chart.Name-.Chart.Version length longer than 63 characters chart: version: 1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 asserts: - failedTemplate: errorMessage: .Chart.Name-.Chart.Version xta-adapter-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen) - - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters - asserts: - - notFailedTemplate: {} \ No newline at end of file