Hi,
Seems you are using SecuredBroker, which delegate the auth to JAAS,
but you didn't add your user/password to the configuration, that's why
you saw the exception.
You need do
edit $SMX_HOME/conf/users-passwords.properties
add
wss4j=xyz
edit $SMX_HOME/conf/groups.properties
replace
admin=smx
with
admin=smx,wss4j
Freeman
On 2010-1-7, at 下午10:42, Philip wrote:
Hi,
On Tue, Jan 5, 2010 at 2:46 PM, Freeman Fang
<[email protected]> wrote:
You also need add SAAJInInterceptor & WSS4JInInterceptor for cxf bc
consumer
endpoint inInterceptors, which extract and save necessary info to
the vector
You may need take a look at xbean-jaas.xml[1], to learn how it
could be
[1]
https://svn.apache.org/repos/asf/servicemix/components/bindings/servicemix-cxf-bc/trunk/src/test/resources/org/apache/servicemix/cxfbc/ws/security/xbean-jaas.xml
Freeman
we added the SAAJ & WSS4J this way:
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"
id="saajin" />
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"
id="wss4jin">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken"/>
<entry key="passwordType" value="PasswordText"/>
<entry key="user" value="wss4j"/>
<entry key="passwordCallbackRef">
<ref bean="myPasswordCallback"/>
</entry>
</map>
</constructor-arg>
</bean>
with our callback class we can read out the Username and Password
but we get
following error:
Caused by: javax.security.auth.login.FailedLoginException: User does
not
exist
The username we send is "wss4j" and the password is "xyz". This is our
callback handler class:
public class ServerPasswordCallback implements CallbackHandler {
private static final Log logger =
LogFactory.getLog(ServerPasswordCallback.class);
private static Map passwords = new HashMap();
static {
passwords.put("wss4j", "xyz");
}
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
WSPasswordCallback pc = (WSPasswordCallback)
callbacks[i];
String pass = (String)
passwords.get(pc.getIdentifer());
if (pass != null) {
pc.setPassword(pass);
}
else { throw new
UnsupportedCallbackException(callbacks[i], "Unrecognized Callback"); }
logger.info("pw-callback done"); // we get this
in the
console
}
}
Do you know what we have to do? Where does the Handler validate the
username? Or what does this error mean?
Thanks again,
Nicolas and Philip
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com