You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2017/03/14 10:17:33 UTC

svn commit: r1786867 - in /webservices/wss4j/trunk: ws-security-common/src/main/java/org/apache/wss4j/common/cache/ ws-security-dom/src/main/java/org/apache/wss4j/dom/util/ ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/ ws-security-policy...

Author: coheigea
Date: Tue Mar 14 10:17:33 2017
New Revision: 1786867

URL: http://svn.apache.org/viewvc?rev=1786867&view=rev
Log:
WSS-599 - Finished converting old Date/Calendar code

Removed:
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/XmlSchemaDateFormat.java
Modified:
    webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/cache/MemoryReplayCache.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java
    webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SupportingTokensTest.java
    webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/UsernameTokenTest.java
    webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SamlTokenValidatorImpl.java
    webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/InboundWSSecurityContextImplTest.java

Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/cache/MemoryReplayCache.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/cache/MemoryReplayCache.java?rev=1786867&r1=1786866&r2=1786867&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/cache/MemoryReplayCache.java (original)
+++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/cache/MemoryReplayCache.java Tue Mar 14 10:17:33 2017
@@ -20,9 +20,11 @@
 package org.apache.wss4j.common.cache;
 
 import java.io.IOException;
+import java.time.Instant;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -39,7 +41,7 @@ public class MemoryReplayCache implement
 
     public static final long DEFAULT_TTL = 60L * 5L;
     public static final long MAX_TTL = DEFAULT_TTL * 12L;
-    private final SortedMap<Date, List<String>> cache = new TreeMap<>();
+    private final SortedMap<Instant, List<String>> cache = new TreeMap<>();
     private final Set<String> ids = Collections.synchronizedSet(new HashSet<>());
 
     /**
@@ -65,15 +67,13 @@ public class MemoryReplayCache implement
             ttl = DEFAULT_TTL;
         }
 
-        Date expires = new Date();
-        long currentTime = expires.getTime();
-        expires.setTime(currentTime + ttl * 1000L);
+        ZonedDateTime expires = ZonedDateTime.now(ZoneOffset.UTC).plusSeconds(ttl);
 
         synchronized (cache) {
             List<String> list = cache.get(expires);
             if (list == null) {
                 list = new ArrayList<>(1);
-                cache.put(expires, list);
+                cache.put(expires.toInstant(), list);
             }
             list.add(identifier);
         }
@@ -94,12 +94,12 @@ public class MemoryReplayCache implement
     }
 
     protected void processTokenExpiry() {
-        Date current = new Date();
+        Instant current = ZonedDateTime.now(ZoneOffset.UTC).toInstant();
         synchronized (cache) {
-            Iterator<Entry<Date, List<String>>> it = cache.entrySet().iterator();
+            Iterator<Entry<Instant, List<String>>> it = cache.entrySet().iterator();
             while (it.hasNext()) {
-                Entry<Date, List<String>> entry = it.next();
-                if (entry.getKey().before(current)) {
+                Entry<Instant, List<String>> entry = it.next();
+                if (entry.getKey().isBefore(current)) {
                     for (String id : entry.getValue()) {
                         ids.remove(id);
                     }

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java?rev=1786867&r1=1786866&r2=1786867&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java Tue Mar 14 10:17:33 2017
@@ -19,7 +19,9 @@
 
 package org.apache.wss4j.dom.validate;
 
-import java.util.Date;
+import java.time.Duration;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.util.List;
 
 import org.apache.wss4j.common.cache.ReplayCache;
@@ -261,10 +263,9 @@ public class SamlAssertionValidator exte
 
             DateTime expires = samlAssertion.getSaml2().getConditions().getNotOnOrAfter();
             if (expires != null) {
-                Date rightNow = new Date();
-                long currentTime = rightNow.getTime();
-                long expiresTime = expires.getMillis();
-                replayCache.add(identifier, 1L + (expiresTime - currentTime) / 1000L);
+                ZonedDateTime currentTime = ZonedDateTime.now(ZoneOffset.UTC);
+                ZonedDateTime zonedExpires = ZonedDateTime.ofInstant(expires.toDate().toInstant(), ZoneOffset.UTC);
+                replayCache.add(identifier, 1L + Duration.between(currentTime, zonedExpires).getSeconds());
             } else {
                 replayCache.add(identifier);
             }

Modified: webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SupportingTokensTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SupportingTokensTest.java?rev=1786867&r1=1786866&r2=1786867&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SupportingTokensTest.java (original)
+++ webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SupportingTokensTest.java Tue Mar 14 10:17:33 2017
@@ -18,7 +18,8 @@
  */
 package org.apache.wss4j.policy.stax.test;
 
-import java.util.Date;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 
 import javax.xml.namespace.QName;
 
@@ -28,6 +29,7 @@ import org.apache.wss4j.common.saml.SAML
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.saml.bean.SubjectBean;
 import org.apache.wss4j.common.saml.bean.Version;
+import org.apache.wss4j.common.util.DateUtil;
 import org.apache.wss4j.policy.stax.enforcer.PolicyEnforcer;
 import org.apache.wss4j.stax.ext.WSSConstants;
 import org.apache.wss4j.stax.impl.securityToken.DsaKeyValueSecurityTokenImpl;
@@ -279,9 +281,11 @@ public class SupportingTokensTest extend
 
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl usernameSecurityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_NONE,
-                "username", null, new Date().toString(), null, new byte[10], 10L,
+                "username", null, created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         usernameSecurityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(usernameSecurityToken);
@@ -291,7 +295,7 @@ public class SupportingTokensTest extend
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
         usernameSecurityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_NONE,
-                "username", null, new Date().toString(), null, new byte[10], 10L,
+                "username", null, created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         usernameSecurityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(usernameSecurityToken);
@@ -321,9 +325,11 @@ public class SupportingTokensTest extend
 
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST,
-                "username", null, new Date().toString(), null, new byte[10], 10L,
+                "username", null, created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(securityToken);
@@ -333,7 +339,7 @@ public class SupportingTokensTest extend
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
         securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST,
-                "username", null, new Date().toString(), null, new byte[10], 10L,
+                "username", null, created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(securityToken);
@@ -367,9 +373,11 @@ public class SupportingTokensTest extend
 
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_NONE,
-                "username", null, new Date().toString(), null, new byte[10], 10L,
+                "username", null, created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(securityToken);
@@ -379,7 +387,7 @@ public class SupportingTokensTest extend
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
         securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(securityToken);
@@ -409,9 +417,11 @@ public class SupportingTokensTest extend
 
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(securityToken);
@@ -421,7 +431,7 @@ public class SupportingTokensTest extend
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
         securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_NONE,
-                "username", null, new Date().toString(), null, new byte[10], 10L,
+                "username", null, created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_SUPPORTING_TOKENS);
         usernameTokenSecurityEvent.setSecurityToken(securityToken);

Modified: webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/UsernameTokenTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/UsernameTokenTest.java?rev=1786867&r1=1786866&r2=1786867&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/UsernameTokenTest.java (original)
+++ webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/UsernameTokenTest.java Tue Mar 14 10:17:33 2017
@@ -19,6 +19,7 @@
 package org.apache.wss4j.policy.stax.test;
 
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.common.util.DateUtil;
 import org.apache.wss4j.policy.stax.PolicyViolationException;
 import org.apache.wss4j.policy.stax.enforcer.PolicyEnforcer;
 import org.apache.wss4j.stax.ext.WSSConstants;
@@ -36,7 +37,8 @@ import org.junit.Test;
 
 import javax.xml.namespace.QName;
 
-import java.util.Date;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -80,9 +82,11 @@ public class UsernameTokenTest extends A
         PolicyEnforcer policyEnforcer = buildAndStartPolicyEngine(policyString);
         UsernameTokenSecurityEvent initiatorTokenSecurityEvent = new UsernameTokenSecurityEvent();
         initiatorTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_MAIN_SIGNATURE);
         initiatorTokenSecurityEvent.setSecurityToken(securityToken);
@@ -92,7 +96,7 @@ public class UsernameTokenTest extends A
         recipientTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
         securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_MAIN_ENCRYPTION);
         recipientTokenSecurityEvent.setSecurityToken(securityToken);
@@ -158,9 +162,11 @@ public class UsernameTokenTest extends A
         PolicyEnforcer policyEnforcer = buildAndStartPolicyEngine(policyString);
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
         usernameTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_TEXT,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_MAIN_SIGNATURE);
         usernameTokenSecurityEvent.setSecurityToken(securityToken);
@@ -170,7 +176,7 @@ public class UsernameTokenTest extends A
         recipientTokenSecurityEvent.setUsernameTokenProfile(WSSConstants.NS_USERNAMETOKEN_PROFILE11);
         securityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_TEXT,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         securityToken.addTokenUsage(WSSecurityTokenConstants.TOKENUSAGE_MAIN_ENCRYPTION);
         recipientTokenSecurityEvent.setSecurityToken(securityToken);

Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SamlTokenValidatorImpl.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SamlTokenValidatorImpl.java?rev=1786867&r1=1786866&r2=1786867&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SamlTokenValidatorImpl.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SamlTokenValidatorImpl.java Tue Mar 14 10:17:33 2017
@@ -18,7 +18,9 @@
  */
 package org.apache.wss4j.stax.validate;
 
-import java.util.Date;
+import java.time.Duration;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.util.List;
 
 import org.apache.wss4j.common.cache.ReplayCache;
@@ -259,10 +261,9 @@ public class SamlTokenValidatorImpl exte
 
             DateTime expires = samlAssertion.getSaml2().getConditions().getNotOnOrAfter();
             if (expires != null) {
-                Date rightNow = new Date();
-                long currentTime = rightNow.getTime();
-                long expiresTime = expires.getMillis();
-                replayCache.add(identifier, 1L + (expiresTime - currentTime) / 1000L);
+                ZonedDateTime currentTime = ZonedDateTime.now(ZoneOffset.UTC);
+                ZonedDateTime zonedExpires = ZonedDateTime.ofInstant(expires.toDate().toInstant(), ZoneOffset.UTC);
+                replayCache.add(identifier, 1L + Duration.between(currentTime, zonedExpires).getSeconds());
             } else {
                 replayCache.add(identifier);
             }

Modified: webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/InboundWSSecurityContextImplTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/InboundWSSecurityContextImplTest.java?rev=1786867&r1=1786866&r2=1786867&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/InboundWSSecurityContextImplTest.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/InboundWSSecurityContextImplTest.java Tue Mar 14 10:17:33 2017
@@ -22,7 +22,8 @@ import java.io.InputStream;
 import java.security.KeyStore;
 import java.security.cert.Certificate;
 import java.security.cert.X509Certificate;
-import java.util.Date;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -34,6 +35,7 @@ import org.apache.wss4j.common.saml.SAML
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.saml.bean.SubjectBean;
 import org.apache.wss4j.common.saml.bean.Version;
+import org.apache.wss4j.common.util.DateUtil;
 import org.apache.wss4j.stax.ext.WSSConstants;
 import org.apache.wss4j.stax.impl.InboundWSSecurityContextImpl;
 import org.apache.wss4j.stax.impl.securityToken.HttpsSecurityTokenImpl;
@@ -140,9 +142,11 @@ public class InboundWSSecurityContextImp
         XMLSecEvent usernameTokenXmlEvent = XMLSecEventFactory.createXmlSecStartElement(WSSConstants.TAG_WSSE_USERNAME_TOKEN, null, null);
 
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl usernameSecurityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_TEXT,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         usernameSecurityToken.setElementPath(usernameTokenPath);
         usernameSecurityToken.setXMLSecEvent(usernameTokenXmlEvent);
@@ -352,9 +356,11 @@ public class InboundWSSecurityContextImp
         inboundWSSecurityContext.registerSecurityEvent(encryptedSupportingTokenEncryptedElementSecurityEvent);
 
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl usernameSecurityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_TEXT,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         usernameSecurityToken.setElementPath(usernameTokenPath);
         usernameSecurityToken.setXMLSecEvent(usernameTokenXmlEvent);
@@ -610,9 +616,11 @@ public class InboundWSSecurityContextImp
         usernameTokenPath.add(WSSConstants.TAG_WSSE_USERNAME_TOKEN);
 
         UsernameTokenSecurityEvent usernameTokenSecurityEvent = new UsernameTokenSecurityEvent();
+        ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
+        String created = DateUtil.getDateTimeFormatter(true).format(now);
         UsernameSecurityTokenImpl usernameSecurityToken = new UsernameSecurityTokenImpl(
                 WSSConstants.UsernameTokenPasswordType.PASSWORD_TEXT,
-                "username", "password", new Date().toString(), null, new byte[10], 10L,
+                "username", "password", created, null, new byte[10], 10L,
                 null, IDGenerator.generateID(null), WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE);
         usernameSecurityToken.setElementPath(usernamePath);
         usernameSecurityToken.setXMLSecEvent(usernameTokenXmlEvent);