Java WS-Security:无法断言HttpsToken
我的WSDL中有以下ws-policy:Java WS-Security:无法断言HttpsToken,java,web-services,soap,ws-security,Java,Web Services,Soap,Ws Security,我的WSDL中有以下ws-policy: <wsp:Policy wssutil:Id="Wssp1.2-2007-Https-UsernameToken-Plain.xml"> <ns1:TransportBinding xmlns:ns1="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"> <wsp:Policy> <ns1:
<wsp:Policy wssutil:Id="Wssp1.2-2007-Https-UsernameToken-Plain.xml">
<ns1:TransportBinding xmlns:ns1="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<ns1:TransportToken>
<wsp:Policy>
<ns1:HttpsToken/>
</wsp:Policy>
</ns1:TransportToken>
<ns1:AlgorithmSuite>
<wsp:Policy>
<ns1:Basic256/>
</wsp:Policy>
</ns1:AlgorithmSuite>
<ns1:Layout>
<wsp:Policy>
<ns1:Lax/>
</wsp:Policy>
</ns1:Layout>
<ns1:IncludeTimestamp/>
</wsp:Policy>
</ns1:TransportBinding>
<ns2:SupportingTokens xmlns:ns2="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<ns2:UsernameToken
ns2:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<ns2:WssUsernameToken10/>
<ns2:HashPassword/>
</wsp:Policy>
</ns2:UsernameToken>
</wsp:Policy>
</ns2:SupportingTokens>
</wsp:Policy>
有些人过去曾面临过这个问题,不幸的是,似乎没有解决办法,没有单一的答复
如果有人遇到类似的问题,我建议查看cxf库版本:服务器端和客户端的不同版本可能会导致此问题。如果您使用http://url的
(例如,您在开发环境中不使用https)您很可能会收到一条错误消息,抱怨Http连接的HttpsToken问题
如果您正在使用HTTP连接,请将HttpsToken替换为HttpToken。您解决了此问题吗?是的-抱歉,忘记发布答案;)
((BindingProvider) port ).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, this.URL);
AddressingProperties maps = new AddressingPropertiesImpl();
((BindingProvider) port).getRequestContext().put("javax.xml.ws.addressing.context", maps);
Map<String, Object> ctx = ((BindingProvider) port).getRequestContext();
ctx.put("ws-security.callback-handler", UsernamePasswordCallback.class.getName());
UsernamePasswordCallback.user = this.USER;
UsernamePasswordCallback.pass = this.PASS;
ctx.put("ws-security.username", UsernamePasswordCallback.user);
ctx.put("ws-security.callback-handler", UsernamePasswordCallback.class.getName());
Client client = ClientProxy.getClient(port);
client.getOutInterceptors().add(new LoggingOutInterceptor());
client.getInInterceptors().add(new LoggingInInterceptor());
HttpsToken could not be asserted: HttpURLConnection is not a HttpsURLConnection