This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new db84461deeb Solving TODO, values for from and subject are now read
from the endpoint configuration (#9076)
db84461deeb is described below
commit db84461deeb018a8aea7d929b0a0d946d8509451
Author: Dennis Schwarz <[email protected]>
AuthorDate: Fri Jan 13 13:24:02 2023 +0100
Solving TODO, values for from and subject are now read from the endpoint
configuration (#9076)
---
.../apache/camel/component/as2/AS2Consumer.java | 7 +++---
.../camel/component/as2/AS2ServerManagerIT.java | 29 +++++++++++++++++++++-
2 files changed, 32 insertions(+), 4 deletions(-)
diff --git
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
index d2535a51939..2c6142b1eda 100644
---
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
+++
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
@@ -43,6 +43,8 @@ import org.apache.http.protocol.HttpRequestHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static java.util.Optional.ofNullable;
+
/**
* The AS2 consumer.
*
@@ -115,9 +117,8 @@ public class AS2Consumer extends
AbstractApiConsumer<AS2ApiName, AS2Configuratio
try {
if (request instanceof HttpEntityEnclosingRequest) {
EntityParser.parseAS2MessageEntity(request);
- // TODO derive last to parameters from configuration.
- apiProxy.handleMDNResponse(context, "MDN Response",
- "Camel AS2 Server Endpoint");
+ apiProxy.handleMDNResponse(context, getEndpoint().getSubject(),
+
ofNullable(getEndpoint().getFrom()).orElse(getEndpoint().getConfiguration().getServer()));
}
ApplicationEDIEntity ediEntity
diff --git
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
index 4982e7b0854..7449fe0a66f 100644
---
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
+++
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
@@ -207,7 +207,7 @@ public class AS2ServerManagerIT extends
AbstractAS2ITSupport {
assertEquals(EDI_MESSAGE.replaceAll("[\n\r]", ""),
rcvdMessageFromBody.replaceAll("[\n\r]", ""),
"EDI message does not match");
}
-
+
@Test
public void receiveMultipartSignedMessageTest() throws Exception {
@@ -378,6 +378,30 @@ public class AS2ServerManagerIT extends
AbstractAS2ITSupport {
String errorMessage = new
String(Streams.readAll(responseEntity.getContent()));
assertEquals(EXPECTED_EXCEPTION_MSG, errorMessage, "");
}
+
+ @Test
+ public void checkMDNTest() throws Exception {
+ AS2ClientConnection clientConnection
+ = new AS2ClientConnection(AS2_VERSION, USER_AGENT,
CLIENT_FQDN, TARGET_HOST, TARGET_PORT);
+ AS2ClientManager clientManager = new
AS2ClientManager(clientConnection);
+
+ //Testing MDN parameter defaults
+ HttpCoreContext response=clientManager.send(EDI_MESSAGE, REQUEST_URI,
SUBJECT, FROM, AS2_NAME, AS2_NAME, AS2MessageStructure.PLAIN,
+ ContentType.create(AS2MediaType.APPLICATION_EDIFACT,
StandardCharsets.US_ASCII), null, null, null, null,
+ null, DISPOSITION_NOTIFICATION_TO,
SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, null);
+
+ assertEquals(new AS2Configuration().getServer(),
response.getResponse().getFirstHeader(AS2Header.FROM).getValue(), "Default
value for From header not set");
+ assertEquals("MDN Response To:" + SUBJECT,
response.getResponse().getFirstHeader(AS2Header.SUBJECT).getValue(), "Default
value for Subject header not set");
+
+ //Testing MDN parameter overwrites
+ response=clientManager.send(EDI_MESSAGE, REQUEST_URI+"mdnTest",
SUBJECT, FROM, AS2_NAME, AS2_NAME, AS2MessageStructure.PLAIN,
+ ContentType.create(AS2MediaType.APPLICATION_EDIFACT,
StandardCharsets.US_ASCII), null, null, null, null,
+ null, DISPOSITION_NOTIFICATION_TO,
SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, null);
+
+ assertEquals("MdnTestFrom",
response.getResponse().getFirstHeader(AS2Header.FROM).getValue(), "Configured
value for From header not set");
+ assertEquals("MdnTestSubjectPrefix" + SUBJECT,
response.getResponse().getFirstHeader(AS2Header.SUBJECT).getValue(),
"Configured value for Subject header not set");
+ }
+
private static void setupSigningGenerator() throws Exception {
Security.addProvider(new BouncyCastleProvider());
@@ -462,6 +486,9 @@ public class AS2ServerManagerIT extends
AbstractAS2ITSupport {
.process(failingProcessor)
.to("mock:as2RcvMsgs");
+ // test route for listen with custom MDN parameters
+ from("as2://" + PATH_PREFIX +
"/listen?requestUriPattern=/mdnTest&from=MdnTestFrom&subject=MdnTestSubjectPrefix")
+ .to("mock:as2RcvMsgs");
}
};
}