Skip to content

Commit 941e5ff

Browse files
jaminhgregturn
authored andcommitted
Propagate TTL in Wss4jSecurityInterceptor.
Ensure TTL values are propagated properly through Wss4j's security interceptor. Resolves #1150. Original pull request: #1185.
1 parent 5a24548 commit 941e5ff

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

spring-ws-security/src/main/java/org/springframework/ws/soap/security/wss4j2/Wss4jSecurityInterceptor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,13 @@ protected RequestData initializeValidationRequestData(MessageContext messageCont
668668

669669
requestData.setCallbackHandler(validationCallbackHandler);
670670

671+
messageContext.setProperty(WSHandlerConstants.TIMESTAMP_STRICT, timestampStrict);
671672
messageContext.setProperty(WSHandlerConstants.TTL_TIMESTAMP, Integer.toString(validationTimeToLive));
673+
messageContext.setProperty(WSHandlerConstants.TTL_FUTURE_TIMESTAMP, Integer.toString(futureTimeToLive));
674+
675+
requestData.setTimeStampStrict(timestampStrict);
676+
requestData.setTimeStampTTL(validationTimeToLive);
677+
requestData.setTimeStampFutureTTL(futureTimeToLive);
672678

673679
requestData.setAllowRSA15KeyTransportAlgorithm(allowRSA15KeyTransportAlgorithm);
674680

spring-ws-security/src/test/java/org/springframework/ws/soap/security/wss4j2/Wss4jMessageInterceptorTimestampTestCase.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,22 @@ public void testValidateTimestampWithExpiredTtl() throws Exception {
7474
});
7575
}
7676

77+
@Test
78+
public void testValidateTimestampWithExpiredTtlCustomTtl() throws Exception {
79+
80+
assertThatExceptionOfType(WsSecurityValidationException.class).isThrownBy(() -> {
81+
82+
Wss4jSecurityInterceptor interceptor = new Wss4jSecurityInterceptor();
83+
interceptor.setValidationActions("Timestamp");
84+
interceptor.setValidationTimeToLive(1);
85+
interceptor.afterPropertiesSet();
86+
SoapMessage message = getMessageWithTimestamp();
87+
Thread.sleep(2000);
88+
MessageContext context = new DefaultMessageContext(message, getSoap11MessageFactory());
89+
interceptor.validateMessage(message, context);
90+
});
91+
}
92+
7793
@Test
7894
public void testSecureTimestampWithCustomTtl() throws Exception {
7995

0 commit comments

Comments
 (0)