如何添加UsernameTokenInterceptor cxf拦截器
how to add UsernameTokenInterceptor cxf interceptor
我正在寻找一种方法来为我的 soap 请求增加安全性 header。
我找到了拦截器,它将解决我的问题:UsernameTokenInterceptor
有人可以建议我如何使用我的参数(密码、用户名)创建这个 bean 并将其正确插入我的 jaxws 客户端
<jaxws:client id="***" name="***" endpointName="***" serviceName="***" address="***" serviceClass="***" xmlns:tns="***">
<jaxws:outInterceptors>
<ref bean="myInterceptor" />
</jaxws:outInterceptors>
UsernameTokenInterceptor 是一个 policy-aware 拦截器,如果您的 WSDL 具有匹配 sp:UsernameToken 的安全策略(没有其他安全绑定),它会自动创建。如果是这样,则使用不同的拦截器.UsernameTokenInterceptor只是为了插入UsernameToken)。所以你只需要将用户名+密码指定为 JAX-WS 属性就可以了。
如果您没有安全策略,那么您想改用 WSS4JOutInterceptor,在出站安全性中手动插入 UsernameToken header。
有关将触发 UsernameTokenInterceptor 的策略示例,请在此处查看名为 "DoubleItPlaintextPolicy" 的策略:
如果您想使用手动方法,CXF 文档中有一个示例:
我正在寻找一种方法来为我的 soap 请求增加安全性 header。
我找到了拦截器,它将解决我的问题:UsernameTokenInterceptor 有人可以建议我如何使用我的参数(密码、用户名)创建这个 bean 并将其正确插入我的 jaxws 客户端
<jaxws:client id="***" name="***" endpointName="***" serviceName="***" address="***" serviceClass="***" xmlns:tns="***">
<jaxws:outInterceptors>
<ref bean="myInterceptor" />
</jaxws:outInterceptors>
UsernameTokenInterceptor 是一个 policy-aware 拦截器,如果您的 WSDL 具有匹配 sp:UsernameToken 的安全策略(没有其他安全绑定),它会自动创建。如果是这样,则使用不同的拦截器.UsernameTokenInterceptor只是为了插入UsernameToken)。所以你只需要将用户名+密码指定为 JAX-WS 属性就可以了。
如果您没有安全策略,那么您想改用 WSS4JOutInterceptor,在出站安全性中手动插入 UsernameToken header。
有关将触发 UsernameTokenInterceptor 的策略示例,请在此处查看名为 "DoubleItPlaintextPolicy" 的策略:
如果您想使用手动方法,CXF 文档中有一个示例: