Author: alessio.soldano(a)jboss.com
Date: 2008-07-18 06:26:30 -0400 (Fri, 18 Jul 2008)
New Revision: 7853
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/security/element/UsernameToken.java
stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws1988/MessageTestCase.java
Log:
[JBWS-2189] Allow default nonce encoding
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/security/element/UsernameToken.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/security/element/UsernameToken.java 2008-07-18
10:18:42 UTC (rev 7852)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/security/element/UsernameToken.java 2008-07-18
10:26:30 UTC (rev 7853)
@@ -95,7 +95,7 @@
{
Element elem = itNonce.next();
String encodingType = elem.getAttribute("EncodingType");
- if (encodingType != null &&
!Constants.BASE64_ENCODING_TYPE.equalsIgnoreCase(encodingType))
+ if (encodingType != null && encodingType.length() > 0 &&
!Constants.BASE64_ENCODING_TYPE.equalsIgnoreCase(encodingType))
throw new WSSecurityException("Unsupported nonce encoding type: " +
encodingType);
this.nonce = XMLUtils.getFullTextChildrenFromElement(elem);
}
Modified:
stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws1988/MessageTestCase.java
===================================================================
---
stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws1988/MessageTestCase.java 2008-07-18
10:18:42 UTC (rev 7852)
+++
stack/native/trunk/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws1988/MessageTestCase.java 2008-07-18
10:26:30 UTC (rev 7853)
@@ -138,6 +138,42 @@
}
}
+ public void testDecodeMessageDefaulNoncetEncoding() throws Exception
+ {
+ String envStr = "<env:Envelope
xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
+ "<env:Header>" +
+ "<wsse:Security env:mustUnderstand='1'
xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
" +
+
"xmlns:wsu='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'>"
+
+ "<wsse:UsernameToken
wsu:Id='token-1-1205341951321-19004769'>" +
+ "<wsse:Username>kermit</wsse:Username>" +
+ "<wsse:Password
Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecur...
+
+
"<wsse:Nonce>gHGIdDEWjX1Ay/LiVd3qJ1ua8VbjXis8CJwNDQh1ySA=</wsse:Nonce>"
+
+ "<wsse:Created>CREATED</wsse:Created>" +
+ "</wsse:UsernameToken>" +
+ "</wsse:Security>" +
+ "</env:Header>" +
+ "<env:Body><ns1:echo
xmlns:ns1='http://org.jboss.ws/jbws1988'><arg0>Hi!</arg0></ns1:echo></env:Body>"
+
+ "</env:Envelope>";
+
+ WSSecurityConfiguration configuration = WSSecurityOMFactory.newInstance().parse(new
StringReader(serverConf));
+
+ //"2008-03-12T17:12:31.310Z"
+ Calendar created = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
+
+ sec.decodeMessage(configuration, getMessage(created, envStr), null);
+ created.add(Calendar.MINUTE, -10);
+
+ try
+ {
+ sec.decodeMessage(configuration, getMessage(created, envStr), null);
+ fail();
+ }
+ catch (Exception e)
+ {
+ //OK
+ }
+ }
+
private SOAPMessage getMessage(Calendar created, String envStr) throws Exception
{
envStr = envStr.replaceAll("CREATED",
SimpleTypeBindings.marshalDateTime(created));