java - SOAP-WS 安全 header 身份验证

标签 java soap soapui ws-security soapheader

我使用 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/

相关文章:

java - 栈是堆中的逻辑内存区域吗?

java - SOAP - 没有命名空间的前缀

java - LoggingInterceptors 在 CXF 中应该是静态的吗?

java - Java代码无法访问Web Service,但在Chrome中可以正常看到其wsdl

Soap UI - Windows 中存储的首选项/设置在哪里

java - 在 Android 中编辑现有文件

java - 如何访问WEB-INF下文件夹内的jsp页面?

java - JSch:在一个命令中设置的 var 对下一个命令不可见(同一 session )

SOAP 水随机延迟

groovy - 如何从 groovy 中的 json 对象获取值