I was working on this a few weeks back and the complete code listing is
given below. Cheers.
Sanjay
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSSecurityEngineResult;
import org.apache.ws.security.WSUsernameTokenPrincipal;
import org.apache.ws.security.handler.WSHandlerConstants;
import org.apache.ws.security.handler.WSHandlerResult;
import java.util.Vector;
public class PolicyEchoService {
public String echo() {
String user=null;
String password=null;
MessageContext msgCtx =
MessageContext.getCurrentMessageContext();
Vector results = null;
if ((results = (Vector) msgCtx
.getProperty(WSHandlerConstants.RECV_RESULTS)) == null)
{
System.out.println("No security results!!");
throw new RuntimeException("No security results!!");
} else {
System.out.println("Number of results: " + results.size());
for (int i = 0; i < results.size(); i++) {
WSHandlerResult rResult = (WSHandlerResult)
results.get(i);
Vector wsSecEngineResults = rResult.getResults();
for (int j = 0; j < wsSecEngineResults.size(); j++) {
WSSecurityEngineResult wser =
(WSSecurityEngineResult) wsSecEngineResults.get(j);
if (wser.getAction() == WSConstants.UT
&& wser.getPrincipal() != null) {
//Extract the principal
WSUsernameTokenPrincipal principal =
(WSUsernameTokenPrincipal)wser.getPrincipal();
//Get user/pass
user = principal.getName();
password = principal.getPassword();
}
}
}
return ("The user was: " + user);
}
}
}
________________________________
From: lucky [mailto:[EMAIL PROTECTED]
Sent: 18 February 2008 11:00
To: [email protected]
Subject: User Token details
Hi,
I am trying to create a handler and read user name/password
there to authenticate the Web-Service client. I have used Rampart as
explained in articles and able to pass username/password as plain text
and authenticate user. Now I want to capture same details in a handler
so that it can be invoked for all Web-Services. I am referring to
article - http://wso2.org/library/169 and trying to get this as below -
Vector results = null;
if ((results = (Vector) msgCtx
.getProperty(WSHandlerConstants.RECV_RESULTS))
== null) {
throw new RuntimeException("No security results!!");
} else {
for (int i = 0; i < results.size(); i++) {
//Get hold of the WSHandlerResult instance
WSHandlerResult rResult = (WSHandlerResult)
results.get(i);
Vector wsSecEngineResults =
rResult.getResults();
for (int j = 0; j < wsSecEngineResults.size();
j++) {
//Get hold of the WSSecurityEngineResult
instance
WSSecurityEngineResult wser =
(WSSecurityEngineResult)
wsSecEngineResults.get(j);
}
}
}
How ever I am not able to locate
(WSHandlerConstants.RECV_RESULTS). Can any one please help quickly and
tell m whch jar to include for this. I am using Axis2 1.3.
Many Thanks for your time and help
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]