【问题标题】:WSO2 EI 6.4 and error Caused by: org.apache.ws.security.WSSecurityExceptionWSO2 EI 6.4 和错误原因:org.apache.ws.security.WSSecurityException
【发布时间】:2021-03-11 07:03:33
【问题描述】:

当 HTTP 响应代码为 200 时,使用 WSO2 EI 6.4.0 发送带有 wsp:Policy wsu:Id="SigOnly" 的 SOAP 消息可以正常工作。签名检查良好,消息流可以继续。

当响应是响应代码为 500 的 SOAP 故障时,发送给 EI 的发起请求会一直挂起。 Send 调解器没有收到任何异常,因此我无法在序列流中处理它(我想向调用者报告它),即使在 faultSequence 中也是如此。我的日志中出现了这个错误:Caused by: org.apache.ws.security.WSSecurityException: The signature or decryption was invalid.

我真的不明白为什么 - 在这种故障情况下 - 签名或解密可能是无效的,而它对于非故障 SOAP 响应是有效的。我看不出soap头结构(故障与非故障)之间的差异,在我看来只有主体不同:

<soapenv:Body wsu:Id="id-1-2b51dae55e169f7625472a2369df8671" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <soapenv:Fault>
    <faultcode>soapenv:Client</faultcode>
    <faultstring>Message bcd45e75-b778-4fe1-83fb-ea97e4015sss failed : VALI-0100 - Validation of request message failed : org.xml.sax.SAXParseException; cvc-enumeration-valid: Value 'Q1andQ2' is not facet-valid with respect to enumeration '[Q1, Q2, Q1+Q2, SO]'. It must be a value from the enumeration., org.xml.sax.SAXParseException; cvc-type.3.1.3: The value 'Q1andQ2' of element 'v21:codeQ' is not valid. 
    </faultstring>
    <faultactor>
    ...

还有完整的例外:

[2021-02-09 17:37:01,216] [EI-Core] ERROR - AxisEngine The signature or decryption was invalid org.apache.axis2.AxisFault: The signature or decryption was invalid
 at org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:194)
 at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:96)
 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.receive(AxisEngine.java:167)
 at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:263)
 at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.ws.security.WSSecurityException: The signature or decryption was invalid
 at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:703)
 at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:124)
 at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:332)
 at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:249)
 at org.apache.rampart.RampartEngine.process(RampartEngine.java:221)
 at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:93) 
 ... 9 more 

[2021-02-09 17:37:01,220] [EI-Core] ERROR - ClientWorker Fault processing response message through Axis2 org.apache.axis2.AxisFault: The signature or decryption was invalid
 at org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:194)
 at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:96)
 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.receive(AxisEngine.java:167)
 at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:263)
 at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:748) 
Caused by: org.apache.ws.security.WSSecurityException: The signature or decryption was invalid

如有任何帮助,请告诉我该怎么做才能将错误报告到调解员级别,以便我可以管理流程。

【问题讨论】:

    标签: wso2 wso2esb wso2ei


    【解决方案1】:

    这个问题似乎是 WSO2 EI 6.4.0 中的一个错误。详情请参考issue#4155

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多