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 2012/07/19 17:08:22 UTC
svn commit: r1363366 - in /webservices/wss4j/trunk/src:
main/java/org/apache/ws/security/action/UsernameTokenAction.java
test/java/org/apache/ws/security/message/UsernameTokenTest.java
Author: coheigea
Date: Thu Jul 19 15:08:22 2012
New Revision: 1363366
URL: http://svn.apache.org/viewvc?rev=1363366&view=rev
Log:
[WSS-398] - Can't create a UsernameToken without a password
Modified:
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/action/UsernameTokenAction.java
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/UsernameTokenTest.java
Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/action/UsernameTokenAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/action/UsernameTokenAction.java?rev=1363366&r1=1363365&r2=1363366&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/action/UsernameTokenAction.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/action/UsernameTokenAction.java Thu Jul 19 15:08:22 2012
@@ -32,17 +32,21 @@ public class UsernameTokenAction impleme
public void execute(WSHandler handler, int actionToDo, Document doc, RequestData reqData)
throws WSSecurityException {
- CallbackHandler callbackHandler =
- handler.getPasswordCallbackHandler(reqData);
- WSPasswordCallback passwordCallback =
- handler.getPasswordCB(reqData.getUsername(), actionToDo, callbackHandler, reqData);
- String providedUsername = passwordCallback.getIdentifier();
- String password = passwordCallback.getPassword();
+ String username = reqData.getUsername();
+ String password = null;
+ if (reqData.getPwType() != null) {
+ CallbackHandler callbackHandler =
+ handler.getPasswordCallbackHandler(reqData);
+ WSPasswordCallback passwordCallback =
+ handler.getPasswordCB(reqData.getUsername(), actionToDo, callbackHandler, reqData);
+ username = passwordCallback.getIdentifier();
+ password = passwordCallback.getPassword();
+ }
WSSecUsernameToken builder = new WSSecUsernameToken(reqData.getWssConfig());
builder.setPasswordType(reqData.getPwType());
builder.setPasswordsAreEncoded(reqData.getWssConfig().getPasswordsAreEncoded());
- builder.setUserInfo(providedUsername, password);
+ builder.setUserInfo(username, password);
if (reqData.getUtElements() != null && reqData.getUtElements().length > 0) {
for (int j = 0; j < reqData.getUtElements().length; j++) {
Modified: webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/UsernameTokenTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/UsernameTokenTest.java?rev=1363366&r1=1363365&r2=1363366&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/UsernameTokenTest.java (original)
+++ webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/UsernameTokenTest.java Thu Jul 19 15:08:22 2012
@@ -648,6 +648,33 @@ public class UsernameTokenTest extends o
}
/**
+ * Test that adds a UserNameToken with no password via WSHandler
+ */
+ @org.junit.Test
+ public void testUsernameTokenWSHandlerNoPassword() throws Exception {
+ CustomHandler handler = new CustomHandler();
+ Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+
+ RequestData reqData = new RequestData();
+ java.util.Map<String, Object> config = new java.util.TreeMap<String, Object>();
+ config.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_NONE);
+ reqData.setUsername("wernerd");
+ reqData.setMsgContext(config);
+
+ java.util.List<Integer> actions = new java.util.ArrayList<Integer>();
+ actions.add(Integer.valueOf(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
*/
@org.junit.Test