Skip to content

Commit ffe5ccb

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 d260339 commit ffe5ccb

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
@@ -689,7 +689,13 @@ protected RequestData initializeValidationRequestData(MessageContext messageCont
689689

690690
requestData.setCallbackHandler(validationCallbackHandler);
691691

692+
messageContext.setProperty(WSHandlerConstants.TIMESTAMP_STRICT, timestampStrict);
692693
messageContext.setProperty(WSHandlerConstants.TTL_TIMESTAMP, Integer.toString(validationTimeToLive));
694+
messageContext.setProperty(WSHandlerConstants.TTL_FUTURE_TIMESTAMP, Integer.toString(futureTimeToLive));
695+
696+
requestData.setTimeStampStrict(timestampStrict);
697+
requestData.setTimeStampTTL(validationTimeToLive);
698+
requestData.setTimeStampFutureTTL(futureTimeToLive);
693699

694700
requestData.setAllowRSA15KeyTransportAlgorithm(allowRSA15KeyTransportAlgorithm);
695701

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)