Author: coheigea Date: Fri May 28 12:04:13 2010 New Revision: 949155 URL: http://svn.apache.org/viewvc?rev=949155&view=rev Log: [WSS-219] - Added tests for adding a UsernameToken with an empty (not null) password. - Forward merged to trunk.
Modified: webservices/wss4j/trunk/test/wssec/TestWSSecurityNew5.java Modified: webservices/wss4j/trunk/test/wssec/TestWSSecurityNew5.java URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/test/wssec/TestWSSecurityNew5.java?rev=949155&r1=949154&r2=949155&view=diff ============================================================================== --- webservices/wss4j/trunk/test/wssec/TestWSSecurityNew5.java (original) +++ webservices/wss4j/trunk/test/wssec/TestWSSecurityNew5.java Fri May 28 12:04:13 2010 @@ -29,6 +29,8 @@ import org.apache.ws.security.WSPassword import org.apache.ws.security.WSSecurityEngine; import org.apache.ws.security.WSConstants; import org.apache.ws.security.WSSConfig; +import org.apache.ws.security.handler.RequestData; +import org.apache.ws.security.handler.WSHandlerConstants; import org.apache.ws.security.message.WSSecUsernameToken; import org.apache.ws.security.message.WSSecHeader; import org.apache.ws.security.util.Base64; @@ -332,6 +334,32 @@ public class TestWSSecurityNew5 extends } /** + * Test that adds a UserNameToken with an empty password + */ + public void testUsernameTokenEmptyPassword() throws Exception { + WSSecUsernameToken builder = new WSSecUsernameToken(); + builder.setPasswordType(WSConstants.PASSWORD_TEXT); + builder.setUserInfo("wernerd", ""); + LOG.info("Before adding UsernameToken with an empty password...."); + Document doc = SOAPUtil.toSOAPPart(SOAPMSG); + WSSecHeader secHeader = new WSSecHeader(); + secHeader.insertSecurityHeader(doc); + Document signedDoc = builder.build(doc, secHeader); + if (LOG.isDebugEnabled()) { + String outputString = + org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc); + LOG.debug(outputString); + } + try { + verify(signedDoc); + throw new Exception("Failure expected on an password"); + } catch (WSSecurityException ex) { + assertTrue(ex.getErrorCode() == WSSecurityException.FAILED_AUTHENTICATION); + // expected + } + } + + /** * Test with a null token type. This will fail as the default is to reject custom * token types. */ @@ -527,6 +555,60 @@ public class TestWSSecurityNew5 extends } /** + * Test that adds a UserNameToken via WSHandler + */ + public void testUsernameTokenWSHandler() throws Exception { + MyHandler handler = new MyHandler(); + Document doc = SOAPUtil.toSOAPPart(SOAPMSG); + + RequestData reqData = new RequestData(); + java.util.Map config = new java.util.TreeMap(); + config.put("password", "verySecret"); + config.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); + reqData.setUsername("wernerd"); + reqData.setMsgContext(config); + + java.util.Vector actions = new java.util.Vector(); + actions.add(new Integer(WSConstants.UT)); + + handler.send(WSConstants.UT, doc, reqData, actions, true); + + if (LOG.isDebugEnabled()) { + LOG.debug("Username Token via WSHandler"); + String outputString = + org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc); + LOG.debug(outputString); + } + } + + /** + * Test that adds a UserNameToken with an empty password via WSHandler + */ + public void testUsernameTokenWSHandlerEmptyPassword() throws Exception { + MyHandler handler = new MyHandler(); + Document doc = SOAPUtil.toSOAPPart(SOAPMSG); + + RequestData reqData = new RequestData(); + java.util.Map config = new java.util.TreeMap(); + config.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); + config.put(WSHandlerConstants.PW_CALLBACK_REF, this); + reqData.setUsername("emptyuser"); + reqData.setMsgContext(config); + + java.util.Vector actions = new java.util.Vector(); + actions.add(new Integer(WSConstants.UT)); + + handler.send(WSConstants.UT, doc, reqData, actions, true); + + if (LOG.isDebugEnabled()) { + LOG.debug("Username Token with an empty password via WSHandler"); + String outputString = + org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc); + LOG.debug(outputString); + } + } + + /** * Verifies the soap envelope * * @param env soap envelope @@ -546,7 +628,11 @@ public class TestWSSecurityNew5 extends if (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN && "wernerd".equals(pc.getIdentifier())) { pc.setPassword("verySecret"); - } else if ( + } else if (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN + && "emptyuser".equals(pc.getIdentifier())) { + pc.setPassword(""); + } + else if ( pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN ) { if ("customUser".equals(pc.getIdentifier())) { --------------------------------------------------------------------- To unsubscribe, e-mail: wss4j-dev-unsubscr...@ws.apache.org For additional commands, e-mail: wss4j-dev-h...@ws.apache.org