我们正在使用以下框架/模块/规范在我们的 Web 服务上实施 WS-Security Policy。
Apache Axis2 1.6.2
Apache Rampart 1.6.2
WS-Security Policy 1.2(命名空间:http ://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702 )
我们在创建/使用服务时面临以下问题。
- Axis2 wsdl 生成逻辑忽略
<sp:NoPassword/>
断言。调试后,我意识到这是因为 org.apache.ws.secpolicy.model.UsernameToken (rampart-policy-1.6.2.jar) 中的逻辑 需要指定<sp:WssUsernameToken11 />
( or<sp:WssUsernameToken10 />
) - 当我再次指定时,被<sp:NoPassword/>
创建为<sp:WssUsernameToken11 />
导致<sp:NoPassword/>
在客户端(消费者)端被忽略的子元素。 - 在实现
org.apache.rampart.PolicyBasedResultsValidator/handleSupportingTokens
method-NoPassword场景时不考虑;因此它总是失败说“org.apache.axis2.AxisFault:请求中缺少用户名令牌”。 - 在消费者方面,要使 WS 安全策略 1.2 起作用,我们必须从客户端壁垒存储库中删除 rahas-1.6.2.mar;还有一个 JIRA 票证 - https://issues.apache.org/jira/browse /RAMPART-371
如果我在这里错过了什么,请提出建议。