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 2014/09/22 13:06:46 UTC

svn commit: r1626730 - in /webservices/wss4j/branches/1_6_x-fixes/src: main/java/org/apache/ws/security/message/token/Timestamp.java main/java/org/apache/ws/security/util/XmlSchemaDateFormat.java test/java/org/apache/ws/security/message/TimestampTest.java

Author: coheigea
Date: Mon Sep 22 11:06:45 2014
New Revision: 1626730

URL: http://svn.apache.org/r1626730
Log:
[WSS-513] - Fails to parse Timestamp headers in Thai locale

Modified:
    webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/message/token/Timestamp.java
    webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/util/XmlSchemaDateFormat.java
    webservices/wss4j/branches/1_6_x-fixes/src/test/java/org/apache/ws/security/message/TimestampTest.java

Modified: webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/message/token/Timestamp.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/message/token/Timestamp.java?rev=1626730&r1=1626729&r2=1626730&view=diff
==============================================================================
--- webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/message/token/Timestamp.java (original)
+++ webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/message/token/Timestamp.java Mon Sep 22 11:06:45 2014
@@ -38,6 +38,7 @@ import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 import java.util.TimeZone;
 
 /**
@@ -203,7 +204,7 @@ public class Timestamp {
         if (milliseconds) {
             zulu = new XmlSchemaDateFormat();
         } else {
-            zulu = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+            zulu = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
             zulu.setTimeZone(TimeZone.getTimeZone("UTC"));
         }
         Element elementCreated =

Modified: webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/util/XmlSchemaDateFormat.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/util/XmlSchemaDateFormat.java?rev=1626730&r1=1626729&r2=1626730&view=diff
==============================================================================
--- webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/util/XmlSchemaDateFormat.java (original)
+++ webservices/wss4j/branches/1_6_x-fixes/src/main/java/org/apache/ws/security/util/XmlSchemaDateFormat.java Mon Sep 22 11:06:45 2014
@@ -25,6 +25,7 @@ import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
 import java.text.ParseException;
 import java.util.Date;
+import java.util.Locale;
 import java.util.TimeZone;
 
 /**
@@ -51,7 +52,7 @@ public class XmlSchemaDateFormat extends
      * DateFormat for Zulu (UTC) form of an XML Schema dateTime string.
      */
     private static final DateFormat DATEFORMAT_XSD_ZULU = new SimpleDateFormat(
-            "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+            "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
 
     static {
         DATEFORMAT_XSD_ZULU.setTimeZone(TimeZone.getTimeZone("UTC"));

Modified: webservices/wss4j/branches/1_6_x-fixes/src/test/java/org/apache/ws/security/message/TimestampTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/1_6_x-fixes/src/test/java/org/apache/ws/security/message/TimestampTest.java?rev=1626730&r1=1626729&r2=1626730&view=diff
==============================================================================
--- webservices/wss4j/branches/1_6_x-fixes/src/test/java/org/apache/ws/security/message/TimestampTest.java (original)
+++ webservices/wss4j/branches/1_6_x-fixes/src/test/java/org/apache/ws/security/message/TimestampTest.java Mon Sep 22 11:06:45 2014
@@ -38,6 +38,7 @@ import org.w3c.dom.Element;
 import java.text.DateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 
 /**
  * WS-Security Test Case for Timestamps.
@@ -770,6 +771,33 @@ public class TimestampTest extends org.j
         }
     }
     
+    @org.junit.Test
+    public void testThaiLocaleVerification() throws Exception {
+        
+        Locale defaultLocale = Locale.getDefault();
+        try {
+            Locale.setDefault(new Locale("th", "TH"));
+        
+            Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+            WSSecHeader secHeader = new WSSecHeader();
+            secHeader.insertSecurityHeader(doc);
+            
+            WSSecTimestamp timestamp = new WSSecTimestamp();
+            timestamp.setTimeToLive(300);
+            Document createdDoc = timestamp.build(doc, secHeader);
+            
+            //
+            // Do some processing
+            //
+            List<WSSecurityEngineResult> wsResult = verify(createdDoc, WSSConfig.getNewInstance());
+            WSSecurityEngineResult actionResult = 
+                WSSecurityUtil.fetchActionResult(wsResult, WSConstants.TS);
+            assertTrue(actionResult != null);
+        } finally {
+            Locale.setDefault(defaultLocale);
+        }
+    }
+    
     /**
      * Verifies the soap envelope
      *