From 882ed2ea323347eade5823dd5c360a3c3a249dee Mon Sep 17 00:00:00 2001 From: OZG-Cloud Team <noreply@ozg-sh.de> Date: Thu, 20 Apr 2023 09:46:48 +0200 Subject: [PATCH] OZG-3136 add configuration parameter --- .gitignore | 1 + ...itional-spring-configuration-metadata.json | 27 +++++++++++++++---- xta-adapter/readme.md | 8 ++++-- .../xta/WsHeaderAddingInterceptor.java | 15 +++++++---- .../ozgcloud/eingang/xta/XtaProperties.java | 7 ++--- .../src/main/resources/application.yml | 2 +- .../eingang/xta/XtaRemoteServiceITCase.java | 3 +-- .../src/test/resources/application-itcase.yml | 3 ++- 8 files changed, 47 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 5224ca6b..06661674 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ build/ .vscode/ application-sec.yml +xta-adapter/KOP_SH_KIEL_DEV.p12 diff --git a/common/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/common/src/main/resources/META-INF/additional-spring-configuration-metadata.json index d135ce00..625980f8 100644 --- a/common/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/common/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -1,5 +1,22 @@ -{"properties": [{ - "name": "ozgcloud.xta.actions.status-list", - "type": "java.lang.String", - "description": "A description for 'ozgcloud.xta.actions.status-list'" -}]} \ No newline at end of file +{"properties": [ + { + "name": "ozgcloud.xta.actions.status-list", + "type": "java.lang.String", + "description": "A description for 'ozgcloud.xta.actions.status-list'" + }, + { + "name": "ozgcloud.xta.identifier", + "type": "java.lang.String", + "description": "XTA Identifier for SOAP Request Header (f.e. 'gae:firstname.lastname@mgm-tp.com')" + }, + { + "name": "ozgcloud.xta.keystore.file", + "type": "java.lang.String", + "description": "Location of the keyfile for xta accesss" + }, + { + "name": "ozgcloud.xta.keystore.password", + "type": "java.lang.String", + "description": "Password of the keyfile for xta accesss" + } +]} \ No newline at end of file diff --git a/xta-adapter/readme.md b/xta-adapter/readme.md index e5541a8c..7b8043c1 100644 --- a/xta-adapter/readme.md +++ b/xta-adapter/readme.md @@ -10,12 +10,16 @@ ozgcloud: Den Dienst dann mit dem Spring-Profile 'sec' starten. -# Ceritifcade chain +# Certificate chain lokal das Root CA in keystore laden: sudo keytool -trustcacerts -keystore /lib/jvm/java-1.17.0-openjdk-amd64/lib/security/cacerts -storepass changeit -importcert -alias dataportRoot -file DataportRootCA02.crt - + +Alternativ p12 Datei lokal erzeugen: + + keytool -importkeystore -srckeystore KOP_SH_KIEL_DEV.pfx -srcstoretype pkcs12 -destkeystore KOP_SH_KIEL_DEV2.p12 -deststoretype PKCS12 + # Port forwarding Um eine Verbindung zum Nachrichtenbroker aufbauen zu können, muss diese über den Hetzner-Server geroutet werden: diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java index 9bc9f906..113f4f97 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java @@ -1,9 +1,6 @@ package de.ozgcloud.eingang.xta; -import jakarta.xml.bind.JAXBContext; -import jakarta.xml.bind.JAXBElement; -import jakarta.xml.bind.JAXBException; - +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.ws.client.WebServiceClientException; import org.springframework.ws.client.support.interceptor.ClientInterceptor; @@ -14,10 +11,18 @@ import de.itvsh.kop.eingangsadapter.common.errorhandling.TechnicalException; import eu.osci.ws._2014._10.transport.OriginatorsType; import eu.osci.ws._2014._10.transport.PartyIdentifierType; import eu.osci.ws._2014._10.transport.PartyType; +import jakarta.validation.Valid; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.JAXBException; @Component class WsHeaderAddingInterceptor implements ClientInterceptor { + @Autowired + @Valid + private XtaProperties properties; + @Override public boolean handleRequest(MessageContext messageContext) throws WebServiceClientException { var soapMessage = (SoapMessage) messageContext.getRequest(); @@ -39,7 +44,7 @@ class WsHeaderAddingInterceptor implements ClientInterceptor { PartyType partyType = new PartyType(); PartyIdentifierType identifier = new PartyIdentifierType(); - identifier.setValue("gae:noreply@ozg-sh.de"); + identifier.setValue(properties.getIdentifier()); partyType.setIdentifier(identifier); var origin = new OriginatorsType(); diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java index d2fc4044..4f06606c 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java @@ -3,15 +3,14 @@ package de.ozgcloud.eingang.xta; import java.math.BigInteger; import java.net.URI; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; - import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; import org.springframework.stereotype.Component; import org.springframework.validation.annotation.Validated; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -30,6 +29,8 @@ class XtaProperties { private KeyStore keyStore; private Actions actions; + + private String identifier; } @Validated diff --git a/xta-adapter/src/main/resources/application.yml b/xta-adapter/src/main/resources/application.yml index 51517476..0755b52a 100644 --- a/xta-adapter/src/main/resources/application.yml +++ b/xta-adapter/src/main/resources/application.yml @@ -12,4 +12,4 @@ ozgcloud: type: PKCS12 actions: status-list: "http://www.osci.eu/ws/2008/05/transport/urn/messageTypes/MsgBoxStatusListRequest" - fetch-request: "http://www.osci.eu/ws/2008/05/transport/urn/messageTypes/MsgBoxFetchRequest" \ No newline at end of file + fetch-request: "http://www.osci.eu/ws/2008/05/transport/urn/messageTypes/MsgBoxFetchRequest" diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java index f805f22c..d79c47c4 100644 --- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java +++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java @@ -2,8 +2,6 @@ package de.ozgcloud.eingang.xta; import static org.assertj.core.api.Assertions.*; -import jakarta.validation.Valid; - import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -12,6 +10,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import de.itvsh.kop.eingangsadapter.Application; +import jakarta.validation.Valid; @Disabled("real live test - do only activate for manual testing") @ActiveProfiles({ "itcase", "local" }) diff --git a/xta-adapter/src/test/resources/application-itcase.yml b/xta-adapter/src/test/resources/application-itcase.yml index 3507852f..fa5c5d86 100644 --- a/xta-adapter/src/test/resources/application-itcase.yml +++ b/xta-adapter/src/test/resources/application-itcase.yml @@ -2,4 +2,5 @@ ozgcloud: xta: keystore: file: classpath:xtaTestStore.p12 - password: <geheim> \ No newline at end of file + password: <geheim> + identifier: gae:noreply@ozg-sh.de \ No newline at end of file -- GitLab