Skip to content

Commit 4014d98

Browse files
brunovgdavsclaus
authored andcommitted
restore security context in AS2ServerConnection to resolve MDN signing/decryption failures
1 parent b9cd21d commit 4014d98

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,18 @@ class RequestListenerService {
8686
public RequestListenerService(String as2Version,
8787
String originServer,
8888
String serverFqdn,
89-
AS2SignatureAlgorithm signatureAlgorithm,
9089
String mdnMessageTemplate,
9190
Certificate[] validateSigningCertificateChain)
9291
throws IOException {
9392

9493
// Set up HTTP protocol processor for incoming connections
95-
final HttpProcessor inhttpproc = initProtocolProcessor(as2Version, originServer, serverFqdn,
96-
null, null, null, null, mdnMessageTemplate,
94+
final HttpProcessor inhttpproc = initProtocolProcessor(
95+
as2Version, originServer, serverFqdn,
96+
AS2ServerConnection.this.signingAlgorithm,
97+
AS2ServerConnection.this.signingCertificateChain,
98+
AS2ServerConnection.this.signingPrivateKey,
99+
AS2ServerConnection.this.decryptingPrivateKey,
100+
mdnMessageTemplate,
97101
validateSigningCertificateChain);
98102

99103
registry = new RequestHandlerRegistry<>();
@@ -193,12 +197,18 @@ public void run() {
193197
AS2AsynchronousMDNManager.ASYNCHRONOUS_MDN,
194198
DispositionNotificationMultipartReportEntity.class);
195199
AS2AsynchronousMDNManager asynchronousMDNManager = new AS2AsynchronousMDNManager(
196-
as2Version,
197-
originServer, serverFqdn, signingCertificateChain, signingPrivateKey);
200+
AS2ServerConnection.this.as2Version,
201+
AS2ServerConnection.this.originServer,
202+
AS2ServerConnection.this.serverFqdn,
203+
AS2ServerConnection.this.signingCertificateChain,
204+
AS2ServerConnection.this.signingPrivateKey);
198205

199206
HttpRequest request = coreContext.getAttribute(HttpCoreContext.HTTP_REQUEST, HttpRequest.class);
200207
AS2SignedDataGenerator gen = ResponseMDN.createSigningGenerator(
201-
request, signingAlgorithm, signingCertificateChain, signingPrivateKey);
208+
request,
209+
AS2ServerConnection.this.signingAlgorithm,
210+
AS2ServerConnection.this.signingCertificateChain,
211+
AS2ServerConnection.this.signingPrivateKey);
202212

203213
MultipartMimeEntity asyncReceipt = multipartReportEntity;
204214
if (gen != null) {
@@ -260,8 +270,11 @@ public AS2ServerConnection(String as2Version,
260270
this.signingAlgorithm = signingAlgorithm;
261271

262272
listenerService = new RequestListenerService(
263-
this.as2Version, this.originServer, this.serverFqdn,
264-
signingAlgorithm, mdnMessageTemplate, validateSigningCertificateChain);
273+
this.as2Version,
274+
this.originServer,
275+
this.serverFqdn,
276+
mdnMessageTemplate,
277+
validateSigningCertificateChain);
265278

266279
acceptorThread = new RequestAcceptorThread(parserServerPortNumber, sslContext, listenerService);
267280
acceptorThread.setDaemon(true);

0 commit comments

Comments
 (0)