diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java index d1e196b6..e4adc4af 100644 --- a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java @@ -36,13 +36,13 @@ public class DefaultTimestampValidator implements TimestampValidationCallback.Ti throws TimestampValidationCallback.TimestampValidationException { if (request instanceof TimestampValidationCallback.UTCTimestampRequest) { TimestampValidationCallback.UTCTimestampRequest utcRequest = - ((TimestampValidationCallback.UTCTimestampRequest) request); + (TimestampValidationCallback.UTCTimestampRequest) request; Date created = parseDate(utcRequest.getCreated()); - Date expired = parseDate(utcRequest.getExpired()); validateCreationTime(created, utcRequest.getMaxClockSkew(), utcRequest.getTimestampFreshnessLimit()); - if (expired != null) { + if (utcRequest.getExpired() != null) { + Date expired = parseDate(utcRequest.getExpired()); validateExpirationTime(expired, utcRequest.getMaxClockSkew()); } } diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidatorTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidatorTest.java new file mode 100644 index 00000000..e0a40606 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidatorTest.java @@ -0,0 +1,25 @@ +package org.springframework.ws.soap.security.xwss.callback; + +import com.sun.xml.wss.impl.callback.TimestampValidationCallback; +import junit.framework.TestCase; + +public class DefaultTimestampValidatorTest extends TestCase { + + private DefaultTimestampValidator validator; + + protected void setUp() throws Exception { + validator = new DefaultTimestampValidator(); + } + + public void testValidate() throws Exception { + TimestampValidationCallback.Request request = new TimestampValidationCallback.UTCTimestampRequest( + "2006-09-25T20:42:50Z", "2107-09-25T20:42:50Z", 100, Long.MAX_VALUE); + validator.validate(request); + } + + public void testValidateNoExpired() throws Exception { + TimestampValidationCallback.Request request = + new TimestampValidationCallback.UTCTimestampRequest("2006-09-25T20:42:50Z", null, 100, Long.MAX_VALUE); + validator.validate(request); + } +} \ No newline at end of file