Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
399 views
in Technique[技术] by (71.8m points)

ws-security,客户端组装soapXML的时候,httpstoken是在 soapXML的哪里添加呢?

下面代码是参考 soapUI的源码,组装 soapXML的内容。
组装请求soapXML时候,httpstoken是在 soapXML的哪里添加呢?

? ? ? ? MessageFactory factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);  
? ? ? ? SOAPMessage message = factory.createMessage();  
? ? ? ? SOAPPart soappart = message.getSOAPPart();  
? ? ? ? SOAPEnvelope envelope = soappart.getEnvelope();  
? ? ? ? SOAPBody body = envelope.getBody();  
? ? ? ??  
? ? ? ? WSSecHeader wsheader = new WSSecHeader();  
? ? ? ? wsheader.insertSecurityHeader(soappart);  
? ? ? ? WSSecTimestamp timestamp = new WSSecTimestamp();  
? ? ? ? timestamp.setTimeToLive(360);  
? ? ? ? timestamp.build(soappart, wsheader);  
? ? ? ? WSSecUsernameToken token = new WSSecUsernameToken();  
? ? ? ? token.setPasswordType(WSConstants.PASSWORD\_TEXT);  
? ? ? ? token.setUserInfo("username", "password");  
? ? ? ? token.addNonce();  
? ? ? ? token.addCreated();  
? ? ? ? token.build(soappart, wsheader);  
? ? ? ??  
? ? ? ??  
? ? ? ? 最后组装成:  
? ? ? ??  
<?xml version="1.0" encoding="UTF-8" standalone="no"?>  
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">  
? ? <env:Header>  
? ? ? ? <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"  
? ? ? ? ? ? ? ? ? ? ? ?xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"  
? ? ? ? ? ? ? ? ? ? ? ?env:mustUnderstand="true">  
? ? ? ? ? ? <wsse:UsernameToken wsu:Id="UsernameToken-6D377F9776C32BB51C15897899608472">  
? ? ? ? ? ? ? ? <wsse:Username>username</wsse:Username>  
? ? ? ? ? ? ? ? <wsse:Password  
? ? ? ? ? ? ? ? ? ? ? ? Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">  
? ? ? ? ? ? ? ? ? ? password  
? ? ? ? ? ? ? ? </wsse:Password>  
? ? ? ? ? ? ? ? <wsse:Nonce  
? ? ? ? ? ? ? ? ? ? ? ? EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">  
? ? ? ? ? ? ? ? ? ? jb/l76clft7i8mYS+nWzrA==  
? ? ? ? ? ? ? ? </wsse:Nonce>  
? ? ? ? ? ? ? ? <wsu:Created>2020-05-18T08:19:20.847Z</wsu:Created>  
? ? ? ? ? ? </wsse:UsernameToken>  
? ? ? ? ? ? <wsu:Timestamp wsu:Id="TS-6D377F9776C32BB51C15897899603871">  
? ? ? ? ? ? ? ? <wsu:Created>2020-05-18T08:19:20.378Z</wsu:Created>  
? ? ? ? ? ? ? ? <wsu:Expires>2020-05-18T08:25:20.378Z</wsu:Expires>  
? ? ? ? ? ? </wsu:Timestamp>  
? ? ? ? </wsse:Security>  
? ? </env:Header>  
? ? <env:Body />  
</env:Envelope>

下面是 httpstoken的 policy

<wsp:Policy xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"  
? ? ? ? ? ? ? ? xmlns:wsp="http://www.w3.org/ns/ws-policy"  
? ? ? ? ? ? ? ? xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"  
? ? ? ? ? ? ? ? wsu:Id="WS-SP-EX2121\_binding\_policy">  
? ? ? ? <sp:TransportBinding>  
? ? ? ? ? ? <wsp:Policy>  
? ? ? ? ? ? ? ? <sp:TransportToken>  
? ? ? ? ? ? ? ? ? ? <wsp:Policy>  
? ? ? ? ? ? ? ? ? ? ? ? <sp:HttpsToken>  
? ? ? ? ? ? ? ? ? ? ? ? ? ? <wsp:Policy/>  
? ? ? ? ? ? ? ? ? ? ? ? </sp:HttpsToken>  
? ? ? ? ? ? ? ? ? ? </wsp:Policy>  
? ? ? ? ? ? ? ? </sp:TransportToken>  
? ? ? ? ? ? ? ? <sp:AlgorithmSuite>  
? ? ? ? ? ? ? ? ? ? <wsp:Policy>  
? ? ? ? ? ? ? ? ? ? ? ? <sp:Basic128/>  
? ? ? ? ? ? ? ? ? ? </wsp:Policy>  
? ? ? ? ? ? ? ? </sp:AlgorithmSuite>  
? ? ? ? ? ? ? ? <sp:Layout>  
? ? ? ? ? ? ? ? ? ? <wsp:Policy>  
? ? ? ? ? ? ? ? ? ? ? ? <sp:Strict/>  
? ? ? ? ? ? ? ? ? ? </wsp:Policy>  
? ? ? ? ? ? ? ? </sp:Layout>  
? ? ? ? ? ? ? ? <sp:IncludeTimestamp/>  
? ? ? ? ? ? </wsp:Policy>  
? ? ? ? </sp:TransportBinding>  
        <sp:SupportingTokens>
            <wsp:Policy>
                <sp:UsernameToken
                        sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
                    <wsp:Policy/>
                </sp:UsernameToken>       
            </wsp:Policy>
        </sp:SupportingTokens>
</wsp:Policy>  

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...