axis2客户端基于ws-security用户令牌验证访问

如果服务端使用了ws-security进行用户验证时,客户端访问时需要在报文头部添加用户名和密码,用户令牌验证只允许在报文头部添加验证。采用axis2生成java代码,以下为实现代码:
  
//stub为生成的代码
stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,"http:.....?wsdl");
//安全头报文生成
SOAPHeaderElement sl = setSoapHeader();
stub.setHeader(sl);

stub.method(arg0, arg1);


private static SOAPHeaderElement setSoapHeader() throws ParserConfigurationException{
// create document of w3c
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.newDocument();
// create Element
String address= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
Element security = document.createElementNS("namespace", "Security");
security.setAttribute("xmlns:wsse", address);
Element usernameToken = document.createElementNS("namespace", "UsernameToken");
Element username = document.createElementNS("namespace", "Username");
Element password = document.createElementNS("namespace", "Password");
password.setAttribute("Type",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");
// add Element
usernameToken.appendChild(username);
usernameToken.appendChild(password);
security.appendChild(usernameToken);
// set value
Text usernameValue = document.createTextNode("aaaa");
username.appendChild(usernameValue);
Text passwordValue = document.createTextNode("aaaa");
password.appendChild(passwordValue);
// create SOAPHeaderElement
SOAPHeaderElement ppElement = new SOAPHeaderElement(security);
ppElement.setPrefix("wsse");
return ppElement;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值