Author: alessio.soldano(a)jboss.com
Date: 2013-06-14 09:18:32 -0400 (Fri, 14 Jun 2013)
New Revision: 17676
Added:
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/extensions/security/PasswordCallbackHandler.java
Modified:
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss710/org/jboss/ws/jaxws-client/main/module.xml
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss720/org/jboss/ws/jaxws-client/main/module.xml
stack/cxf/trunk/modules/resources/src/main/resources/modules/wildfly800/org/jboss/ws/jaxws-client/main/module.xml
stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-samples-jars-jaxws.xml
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/KeystorePasswordCallback.java
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/ServerUsernamePasswordCallback.java
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/KeystorePasswordCallback.java
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/ServerUsernamePasswordCallback.java
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/secconv/KeystorePasswordCallback.java
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/STSCallbackHandler.java
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/ServerCallbackHandler.java
Log:
[JBWS-3651] Adding default PasswordCallbackHandler and fixing some tests to use it and
avoid explicit dependency on org.apache.ws.security module.
Added:
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/extensions/security/PasswordCallbackHandler.java
===================================================================
---
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/extensions/security/PasswordCallbackHandler.java
(rev 0)
+++
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/extensions/security/PasswordCallbackHandler.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2013, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.stack.cxf.extensions.security;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import org.apache.ws.security.WSPasswordCallback;
+
+public class PasswordCallbackHandler implements CallbackHandler
+{
+
+ private Map<String, String> passwords = new HashMap<String, String>();
+
+ public PasswordCallbackHandler(Map<String, String> initMap)
+ {
+ passwords.putAll(initMap);
+ }
+
+ /**
+ * It attempts to get the password from the private
+ * alias/passwords map.
+ */
+ public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException
+ {
+ for (int i = 0; i < callbacks.length; i++)
+ {
+ final Callback c = callbacks[i];
+ if (c != null && c instanceof WSPasswordCallback) {
+ final WSPasswordCallback pc = (WSPasswordCallback)c;
+
+ String pass = passwords.get(pc.getIdentifier());
+ if (pass != null)
+ {
+ pc.setPassword(pass);
+ return;
+ }
+ }
+ }
+ }
+
+ /**
+ * Add an alias/password pair to the callback mechanism.
+ */
+ public void setAliasPassword(String alias, String password)
+ {
+ passwords.put(alias, password);
+ }
+}
Modified:
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss710/org/jboss/ws/jaxws-client/main/module.xml
===================================================================
---
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss710/org/jboss/ws/jaxws-client/main/module.xml 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss710/org/jboss/ws/jaxws-client/main/module.xml 2013-06-14
13:18:32 UTC (rev 17676)
@@ -59,6 +59,7 @@
</module>
<module name="org.apache.log4j" />
<module name="org.apache.neethi" />
+ <module name="org.apache.ws.security" />
<module name="org.jboss.logging" />
<module name="org.springframework.spring" optional="true"
/>
<module name="javax.wsdl4j.api" />
Modified:
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss720/org/jboss/ws/jaxws-client/main/module.xml
===================================================================
---
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss720/org/jboss/ws/jaxws-client/main/module.xml 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/resources/src/main/resources/modules/jboss720/org/jboss/ws/jaxws-client/main/module.xml 2013-06-14
13:18:32 UTC (rev 17676)
@@ -63,6 +63,7 @@
</module>
<module name="org.apache.log4j" />
<module name="org.apache.neethi" />
+ <module name="org.apache.ws.security" />
<module name="org.jboss.logging" />
<module name="org.springframework.spring" optional="true"
/>
<module name="javax.wsdl4j.api" />
Modified:
stack/cxf/trunk/modules/resources/src/main/resources/modules/wildfly800/org/jboss/ws/jaxws-client/main/module.xml
===================================================================
---
stack/cxf/trunk/modules/resources/src/main/resources/modules/wildfly800/org/jboss/ws/jaxws-client/main/module.xml 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/resources/src/main/resources/modules/wildfly800/org/jboss/ws/jaxws-client/main/module.xml 2013-06-14
13:18:32 UTC (rev 17676)
@@ -63,6 +63,7 @@
</module>
<module name="org.apache.log4j" />
<module name="org.apache.neethi" />
+ <module name="org.apache.ws.security" />
<module name="org.jboss.logging" />
<module name="org.springframework.spring" optional="true"
/>
<module name="javax.wsdl4j.api" />
Modified: stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-samples-jars-jaxws.xml
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-samples-jars-jaxws.xml 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-samples-jars-jaxws.xml 2013-06-14
13:18:32 UTC (rev 17676)
@@ -162,7 +162,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -184,7 +184,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -206,7 +206,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -235,7 +235,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -265,7 +265,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -292,7 +292,7 @@
<include name="bob.jks" />
</metainf>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</jar>
@@ -314,7 +314,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -336,7 +336,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -353,7 +353,7 @@
<include name="bob.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client, org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -374,7 +374,7 @@
<include name="bob2.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -400,7 +400,7 @@
<include name="META-INF/jaxws-client-config.xml" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client services,
org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client services"/>
</manifest>
</war>
@@ -431,7 +431,7 @@
<include name="serviceKeystore.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -452,7 +452,7 @@
<include name="stsKeystore.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf.impl annotations"/> <!-- cxf
impl required to extend STS impl -->
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client,org.apache.cxf.impl annotations"/>
<!-- cxf impl required to extend STS impl -->
</manifest>
</war>
@@ -481,7 +481,7 @@
<include name="stsKeystore.properties" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf,org.picketlink"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client,org.picketlink"/>
</manifest>
</war>
@@ -503,7 +503,7 @@
<include name="JavaFirstPolicy.xml" />
</zipfileset>
<manifest>
- <attribute name="Dependencies"
value="org.apache.cxf,org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -521,7 +521,7 @@
<include name="wsdl/*"/>
</webinf>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</war>
@@ -540,7 +540,7 @@
<include name="wsdl/*"/>
</webinf>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf.impl"/> <!-- cxf impl
required due to custom interceptor in deployment -->
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client,org.apache.cxf.impl"/> <!-- cxf
impl required due to custom interceptor in deployment -->
</manifest>
</war>
@@ -559,7 +559,7 @@
<include name="wsdl/*"/>
</webinf>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf.impl"/> <!-- cxf impl
required due to custom interceptor in deployment -->
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client,org.apache.cxf.impl"/> <!-- cxf
impl required due to custom interceptor in deployment -->
</manifest>
</war>
@@ -575,7 +575,7 @@
<include name="jaxws-endpoint-config.xml"/>
</metainf>
<manifest>
- <attribute name="Dependencies"
value="org.apache.ws.security,org.apache.cxf"/>
+ <attribute name="Dependencies"
value="org.jboss.ws.cxf.jbossws-cxf-client"/>
</manifest>
</jar>
Modified:
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/KeystorePasswordCallback.java
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/KeystorePasswordCallback.java 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/KeystorePasswordCallback.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -21,51 +21,23 @@
*/
package org.jboss.test.ws.jaxws.samples.wsse.policy.basic;
-import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.apache.ws.security.WSPasswordCallback;
+import org.jboss.wsf.stack.cxf.extensions.security.PasswordCallbackHandler;
-public class KeystorePasswordCallback implements CallbackHandler
+public class KeystorePasswordCallback extends PasswordCallbackHandler
{
-
- private Map<String, String> passwords = new HashMap<String, String>();
-
public KeystorePasswordCallback()
{
+ super(getInitMap());
+ }
+
+ private static Map<String, String> getInitMap() {
+ Map<String, String> passwords = new HashMap<String, String>();
passwords.put("alice", "password");
passwords.put("bob", "password");
passwords.put("john", "password");
+ return passwords;
}
-
- /**
- * It attempts to get the password from the private
- * alias/passwords map.
- */
- public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException
- {
- for (int i = 0; i < callbacks.length; i++)
- {
- WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
-
- String pass = passwords.get(pc.getIdentifier());
- if (pass != null)
- {
- pc.setPassword(pass);
- return;
- }
- }
- }
-
- /**
- * Add an alias/password pair to the callback mechanism.
- */
- public void setAliasPassword(String alias, String password)
- {
- passwords.put(alias, password);
- }
}
Modified:
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/ServerUsernamePasswordCallback.java
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/ServerUsernamePasswordCallback.java 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/basic/ServerUsernamePasswordCallback.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -21,20 +21,21 @@
*/
package org.jboss.test.ws.jaxws.samples.wsse.policy.basic;
-import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.apache.ws.security.WSPasswordCallback;
+import org.jboss.wsf.stack.cxf.extensions.security.PasswordCallbackHandler;
-public class ServerUsernamePasswordCallback implements CallbackHandler
+public class ServerUsernamePasswordCallback extends PasswordCallbackHandler
{
- public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException
+ public ServerUsernamePasswordCallback()
{
- WSPasswordCallback pc = (WSPasswordCallback)callbacks[0];
- //this CallbackHandler is meant for use with WSS4J 1.6, see
http://ws.apache.org/wss4j/wss4j16.html
- if ("kermit".equals(pc.getIdentifier()))
- pc.setPassword("thefrog");
+ super(getInitMap());
}
+
+ private static Map<String, String> getInitMap() {
+ Map<String, String> passwords = new HashMap<String, String>();
+ passwords.put("kermit", "thefrog");
+ return passwords;
+ }
}
Modified:
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/KeystorePasswordCallback.java
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/KeystorePasswordCallback.java 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/KeystorePasswordCallback.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -21,50 +21,22 @@
*/
package org.jboss.test.ws.jaxws.samples.wsse.policy.oasis;
-import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.apache.ws.security.WSPasswordCallback;
+import org.jboss.wsf.stack.cxf.extensions.security.PasswordCallbackHandler;
-public class KeystorePasswordCallback implements CallbackHandler
+public class KeystorePasswordCallback extends PasswordCallbackHandler
{
-
- private Map<String, String> passwords = new HashMap<String, String>();
-
public KeystorePasswordCallback()
{
+ super(getInitMap());
+ }
+
+ private static Map<String, String> getInitMap() {
+ Map<String, String> passwords = new HashMap<String, String>();
passwords.put("alice", "password");
passwords.put("bob", "password");
+ return passwords;
}
-
- /**
- * It attempts to get the password from the private
- * alias/passwords map.
- */
- public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException
- {
- for (int i = 0; i < callbacks.length; i++)
- {
- WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
-
- String pass = passwords.get(pc.getIdentifier());
- if (pass != null)
- {
- pc.setPassword(pass);
- return;
- }
- }
- }
-
- /**
- * Add an alias/password pair to the callback mechanism.
- */
- public void setAliasPassword(String alias, String password)
- {
- passwords.put(alias, password);
- }
}
Modified:
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/ServerUsernamePasswordCallback.java
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/ServerUsernamePasswordCallback.java 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/oasis/ServerUsernamePasswordCallback.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -21,22 +21,22 @@
*/
package org.jboss.test.ws.jaxws.samples.wsse.policy.oasis;
-import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.apache.ws.security.WSPasswordCallback;
+import org.jboss.wsf.stack.cxf.extensions.security.PasswordCallbackHandler;
-public class ServerUsernamePasswordCallback implements CallbackHandler
+public class ServerUsernamePasswordCallback extends PasswordCallbackHandler
{
- public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException
- {
- WSPasswordCallback pc = (WSPasswordCallback)callbacks[0];
- final String id = pc.getIdentifier();
- if ("kermit".equals(id))
- pc.setPassword("thefrog");
- else if ("alice".equals(id) || "bob".equals(id))
- pc.setPassword("password");
+ public ServerUsernamePasswordCallback() {
+ super(getInitMap());
}
+
+ private static Map<String, String> getInitMap() {
+ Map<String, String> passwords = new HashMap<String, String>();
+ passwords.put("kermit", "thefrog");
+ passwords.put("alice", "password");
+ passwords.put("bob", "password");
+ return passwords;
+ }
}
Modified:
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/secconv/KeystorePasswordCallback.java
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/secconv/KeystorePasswordCallback.java 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/secconv/KeystorePasswordCallback.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -21,51 +21,21 @@
*/
package org.jboss.test.ws.jaxws.samples.wsse.policy.secconv;
-import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.apache.ws.security.WSPasswordCallback;
-
-public class KeystorePasswordCallback implements CallbackHandler
+public class KeystorePasswordCallback extends
org.jboss.wsf.stack.cxf.extensions.security.PasswordCallbackHandler
{
-
- private Map<String, String> passwords = new HashMap<String, String>();
-
public KeystorePasswordCallback()
{
+ super(getInitMap());
+ }
+
+ private static Map<String, String> getInitMap() {
+ Map<String, String> passwords = new HashMap<String, String>();
passwords.put("alice", "password");
passwords.put("bob", "password");
passwords.put("john", "password");
+ return passwords;
}
-
- /**
- * It attempts to get the password from the private
- * alias/passwords map.
- */
- public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException
- {
- for (int i = 0; i < callbacks.length; i++)
- {
- WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
-
- String pass = passwords.get(pc.getIdentifier());
- if (pass != null)
- {
- pc.setPassword(pass);
- return;
- }
- }
- }
-
- /**
- * Add an alias/password pair to the callback mechanism.
- */
- public void setAliasPassword(String alias, String password)
- {
- passwords.put(alias, password);
- }
}
Modified:
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/STSCallbackHandler.java
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/STSCallbackHandler.java 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/STSCallbackHandler.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -18,24 +18,22 @@
*/
package org.jboss.test.ws.jaxws.samples.wsse.policy.trust;
-import java.io.IOException;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.apache.ws.security.WSPasswordCallback;
+import java.util.HashMap;
+import java.util.Map;
-public class STSCallbackHandler implements CallbackHandler {
+import org.jboss.wsf.stack.cxf.extensions.security.PasswordCallbackHandler;
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- if (callbacks[i] instanceof WSPasswordCallback) {
- WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
- if ("mystskey".equals(pc.getIdentifier())) {
- pc.setPassword("stskpass");
- break;
- }
- }
- }
- }
+public class STSCallbackHandler extends PasswordCallbackHandler
+{
+ public STSCallbackHandler()
+ {
+ super(getInitMap());
+ }
+
+ private static Map<String, String> getInitMap()
+ {
+ Map<String, String> passwords = new HashMap<String, String>();
+ passwords.put("mystskey", "stskpass");
+ return passwords;
+ }
}
Modified:
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/ServerCallbackHandler.java
===================================================================
---
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/ServerCallbackHandler.java 2013-06-14
10:18:14 UTC (rev 17675)
+++
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/trust/ServerCallbackHandler.java 2013-06-14
13:18:32 UTC (rev 17676)
@@ -18,24 +18,23 @@
*/
package org.jboss.test.ws.jaxws.samples.wsse.policy.trust;
-import java.io.IOException;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import org.apache.ws.security.WSPasswordCallback;
+import java.util.HashMap;
+import java.util.Map;
-public class ServerCallbackHandler implements CallbackHandler {
+import org.jboss.wsf.stack.cxf.extensions.security.PasswordCallbackHandler;
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- if (callbacks[i] instanceof WSPasswordCallback) { // CXF
- WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
- if ("myservicekey".equals(pc.getIdentifier())) {
- pc.setPassword("skpass");
- break;
- }
- }
- }
- }
+public class ServerCallbackHandler extends PasswordCallbackHandler
+{
+
+ public ServerCallbackHandler()
+ {
+ super(getInitMap());
+ }
+
+ private static Map<String, String> getInitMap()
+ {
+ Map<String, String> passwords = new HashMap<String, String>();
+ passwords.put("myservicekey", "skpass");
+ return passwords;
+ }
}