我使用 spring+ XSD+ Payload 开发了一个网络服务。我需要使用 SOAP 请求 header 中的用户名和密码来验证请求 header ,这是我使用 SOAPUI 实现的
我能够在请求中生成以下 header
<soapenv:Envelope xmlns:jaxb="http://jaxb.miws.sg.com/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv: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">
<wsse:UsernameToken wsu:Id="UsernameToken-C3092BFBAE5B212E93144378035575013">
<wsse:Username>User</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">test</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">CT1Fyo/g2WMaadE52bsnkg== </wsse:Nonce>
<wsu:Created>2015-10-02T10:05:55.750Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
现在我想验证用户名和密码的 header 元素。
例如:
案例1: userName=用户和密码=test//身份验证通过并给出响应成功
案例2: userName=User1 and Password=test1//认证失败并给出响应 Failure
请帮助我提供合适的样本来实现同样的目的。
最佳答案
SOAP Web 服务中的处理程序(类似于拦截器/过滤器)可用于服务器端的身份验证目的,然后进一步链接请求。 请查看 SOAPHandler 来解析有效负载中的 header 信息并验证用户名/密码。 SOAP Handler at Server Side
关于java - SOAP-WS 安全 header 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32905435/