JAVA-CXF WS-security“;验证消息“时遇到安全错误”;

JAVA-CXF WS-security“;验证消息“时遇到安全错误”;,java,soap,cxf,ws-security,Java,Soap,Cxf,Ws Security,抱歉,这个问题可能会重复出现,因为我完全被阻止了。 我正在尝试在CXF框架之上实现一个Web服务服务器Jax ws非常有助于处理web服务,它很容易实现。 但是,当您想引入安全性时,问题就来了 要在中处理安全性,请实现以下源代码: EndpointImpl jaxWsEndpoint = (EndpointImpl) Endpoint.publish(endPointAddress, httpWebService); inProps.put("action", "UsernameToken Ti

抱歉,这个问题可能会重复出现,因为我完全被阻止了。 我正在尝试在CXF框架之上实现一个Web服务服务器Jax ws非常有助于处理web服务,它很容易实现。 但是,当您想引入安全性时,问题就来了

要在中处理安全性,请实现以下源代码:

EndpointImpl jaxWsEndpoint = (EndpointImpl) Endpoint.publish(endPointAddress, httpWebService);
inProps.put("action", "UsernameToken Timestamp");
inProps.put("passwordType", "PasswordText");
inProps.put("passwordCallbackClass", "com.company.webService.PasswordListener");
jaxWsEndpoint.getInInterceptors().add(new WSS4JInInterceptor(inProps));
我将以下SOAP请求推送到该Web服务:

...
<soapenv:Header>
   <wsse:Security soapenv:mustunderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <wsse:Usernametoken wsu:id="UsernameToken-27777511" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:Username>admin</wsse:Username>
        <wsse:Password type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass</wsse:Password>
     </wsse:Usernametoken>
   </wsse:Security>
</soapenv:Header>
...
如果有人知道我哪里出错了

谢谢

您有
inProps.put(“操作”,“用户名令牌时间戳”)但安全标头中没有时间戳。从操作中删除“时间戳”或添加匹配的安全标头

编辑
消息非常清楚“安全处理失败(操作不匹配)”,因此查看您的请求会发现另一个错误:它应该是
wsse:UsernameToken
,而不是
wsse:UsernameToken

非常感谢您的回答,我已经尝试过了,但没有成功。不幸的是,我也有同样的例外。两个问题:您使用的是哪些版本的cxf和wss4j,以及您到底尝试了什么?是否删除该操作或添加时间戳?如果是后者:您是否检查了标题的顺序?安全头的顺序必须与InInterceptor所期望的完全一致,因此我使用CXF版本3.1.6。为了回答您的问题,我从属性容器中删除了“Timestamp”以添加详细信息供您理解,我的应用程序是一个POJO独立应用程序,我没有使用Spring、Tomecat等高级框架。非常感谢,很抱歉出现此错误。让我们来看另一个异常:由以下原因引起:org.apache.wss4j.common.ext.WSSecurityException:BSP:R4201:任何密码都必须指定类型属性
Jun 08, 2016 10:48:24 AM org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor checkActions
WARNING: Security processing failed (actions mismatch)
Jun 08, 2016 10:48:24 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
WARNING: Interceptor for {http://httpAbstractHandlerImplementation.webService.company.co /}HttpWebServiceService has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: A security error was encountered when verifying the message at org.apache.cxf.ws.security.wss4j.WSS4JUtils.createSoapFault(WSS4JUtils.java:218)
at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:316)