WSO2 ESB调用安全WCF后端服务时出错

时间:2014-10-10 13:09:49

标签: wcf wso2esb ws-security rampart

我正在尝试调用安全的WCF服务并不断收到以下错误 我正在使用wso2 esb 4.8.1,这是通过代理。 我还在rampart配置文件中禁用了流入安全性。 另外附上我的此服务的安全政策

 WARN FaultHandler ERROR_DETAIL : org.apache.synapse.SynapseException: Unexpected error during sending message out
    at org.apache.synapse.core.axis2.Axis2Sender.handleException(Axis2Sender.java:172)
    at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:71)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:338)
    at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:333)
    at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
    at org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:54)
    at org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:114)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.axis2.AxisFault: Error in obtaining a token
    at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:76)
    at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
    at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
    at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:426)
    at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:156)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
    at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:482)
    at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:59)
    ... 16 more
Caused by: org.apache.rampart.RampartException: Error in obtaining a token
    at org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:779)
    at org.apache.rampart.util.RampartUtil.getSecConvToken(RampartUtil.java:633)
    at org.apache.rampart.builder.TransportBindingBuilder.handleSecureConversationTokens(TransportBindingBuilder.java:626)
    at org.apache.rampart.builder.TransportBindingBuilder.build(TransportBindingBuilder.java:141)
    at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:140)
    at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:65)
    ... 24 more
Caused by: org.apache.rahas.TrustException: Error in obtaining token from : "https://myendpoint"
    at org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:174)
    at org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:182)
    at org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:766)
    ... 29 more
Caused by: org.apache.axis2.AxisFault: The input stream for an incoming message is null.
    at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:93)
    at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:68)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:348)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:445)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
    at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:554)
    at org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:165)
    ... 31 more

Policy.xml

出于安全目的,我删除了用户和网址

<?xml version="1.0" encoding="UTF-8"?>
<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
               xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
               xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy"
               xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
               xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract"
               xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
      <wsp:ExactlyOne>
         <wsp:All>
            <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
               <wsp:Policy>
                  <sp:TransportToken>
                     <wsp:Policy>
                        <sp:HttpsToken RequireClientCertificate="false"/>
                     </wsp:Policy>
                  </sp:TransportToken>
                  <sp:AlgorithmSuite>
                     <wsp:Policy>
                        <sp:Basic256/>
                     </wsp:Policy>
                  </sp:AlgorithmSuite>
                  <sp:Layout>
                     <wsp:Policy>
                        <sp:Strict/>
                     </wsp:Policy>
                  </sp:Layout>
                  <sp:IncludeTimestamp/>
               </wsp:Policy>
            </sp:TransportBinding>
            <sp:EndorsingSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
               <wsp:Policy>
                  <sp:SecureConversationToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                     <wsp:Policy>
                        <sp:BootstrapPolicy>
                           <wsp:Policy>
                              <sp:SignedParts>
                                 <sp:Body/>
                                 <sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing"/>
                                 <sp:Header Name="From" Namespace="http://www.w3.org/2005/08/addressing"/>
                                 <sp:Header Name="FaultTo" Namespace="http://www.w3.org/2005/08/addressing"/>
                                 <sp:Header Name="ReplyTo" Namespace="http://www.w3.org/2005/08/addressing"/>
                                 <sp:Header Name="MessageID" Namespace="http://www.w3.org/2005/08/addressing"/>
                                 <sp:Header Name="RelatesTo" Namespace="http://www.w3.org/2005/08/addressing"/>
                                 <sp:Header Name="Action" Namespace="http://www.w3.org/2005/08/addressing"/>
                              </sp:SignedParts>
                              <sp:EncryptedParts>
                                 <sp:Body/>
                              </sp:EncryptedParts>
                              <sp:TransportBinding>
                                 <wsp:Policy>
                                    <sp:TransportToken>
                                       <wsp:Policy>
                                          <sp:HttpsToken RequireClientCertificate="false"/>
                                       </wsp:Policy>
                                    </sp:TransportToken>
                                    <sp:AlgorithmSuite>
                                       <wsp:Policy>
                                          <sp:Basic256/>
                                       </wsp:Policy>
                                    </sp:AlgorithmSuite>
                                    <sp:Layout>
                                       <wsp:Policy>
                                          <sp:Strict/>
                                       </wsp:Policy>
                                    </sp:Layout>
                                    <sp:IncludeTimestamp/>
                                 </wsp:Policy>
                              </sp:TransportBinding>
                              <sp:SignedSupportingTokens>
                                 <wsp:Policy>
                                    <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                                       <wsp:Policy>
                                          <sp:WssUsernameToken10/>
                                       </wsp:Policy>
                                    </sp:UsernameToken>
                                 </wsp:Policy>
                              </sp:SignedSupportingTokens>
                              <sp:Wss11>
                                 <wsp:Policy/>
                              </sp:Wss11>
                              <sp:Trust10>
                                 <wsp:Policy>
                                    <sp:MustSupportIssuedTokens/>
                                    <sp:RequireClientEntropy/>
                                    <sp:RequireServerEntropy/>
                                 </wsp:Policy>
                              </sp:Trust10>
                           </wsp:Policy>
                        </sp:BootstrapPolicy>
                     </wsp:Policy>
                  </sp:SecureConversationToken>
               </wsp:Policy>
            </sp:EndorsingSupportingTokens>
            <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
               <wsp:Policy/>
            </sp:Wss11>
            <sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
               <wsp:Policy>
                  <sp:MustSupportIssuedTokens/>
                  <sp:RequireClientEntropy/>
                  <sp:RequireServerEntropy/>
               </wsp:Policy>
            </sp:Trust10>
            <wsaw:UsingAddressing/>
            <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
               <ramp:user>User</ramp:user>
               <ramp:passwordCallbackClass>org.example.rampart.PWCBHandler</ramp:passwordCallbackClass>
               <ramp:signatureCrypto>
                  <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
                     <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
                     <ramp:property name="org.apache.ws.security.crypto.merlin.file">/pathto/wso2carbon.jks</ramp:property>
                     <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">wso2carbon</ramp:property>
                  </ramp:crypto>
               </ramp:signatureCrypto>
               <ramp:encryptionCypto>
                  <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
                     <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
                     <ramp:property name="org.apache.ws.security.crypto.merlin.file">/pathto/wso2carbon.jks</ramp:property>
                     <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">wso2carbon</ramp:property>
                  </ramp:crypto>
               </ramp:encryptionCypto>
            </ramp:RampartConfig>
         </wsp:All>
      </wsp:ExactlyOne>
   </wsp:Policy>

从服务

的WSDL文件复制策略

谢谢大家的反馈

埃尔丁

0 个答案:

没有答案