`
wanghuanqiu
  • 浏览: 108613 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

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
0
分享到:
评论
4 楼 g21121 2014-05-30  
    SOAPHeaderElement ppElement = new SOAPHeaderElement(security); 
这行报错
3 楼 wanghuanqiu 2012-09-25  
nevernam 写道
nevernam 写道
请教一下,这个username和password一般是那里进行设置的呢?

说错了,我的意思是哪里获取的呢

不是获取的这种简单验证,前提得知道用户名和密码。
2 楼 nevernam 2012-09-24  
nevernam 写道
请教一下,这个username和password一般是那里进行设置的呢?

说错了,我的意思是哪里获取的呢
1 楼 nevernam 2012-09-24  
请教一下,这个username和password一般是那里进行设置的呢?

相关推荐

Global site tag (gtag.js) - Google Analytics