wso2esb身份验证服务异常

wso2esb身份验证服务异常,wso2,axis2,wso2esb,wso2is,wso2carbon,Wso2,Axis2,Wso2esb,Wso2is,Wso2carbon,您好,我已将wso2esb 4.7.0升级到wso2esb 4.8.0 我有一个登录服务,可以验证用户名和密码,并返回true或false。它在4.7.0版本中运行良好,但在4.8.0版本中不起作用 当从任何其他代理在内部调用此服务时,它将为该代理的有效用户返回true,但当我直接调用它时,它将返回me null并在esb中抛出错误,如下所示 ERROR {org.apache.axis2.transport.base.threads.NativeWorkerPool} - Uncaught

您好,我已将wso2esb 4.7.0升级到wso2esb 4.8.0

我有一个登录服务,可以验证用户名和密码,并返回true或false。它在4.7.0版本中运行良好,但在4.8.0版本中不起作用

当从任何其他代理在内部调用此服务时,它将为该代理的有效用户返回true,但当我直接调用它时,它将返回me null并在esb中抛出错误,如下所示

ERROR {org.apache.axis2.transport.base.threads.NativeWorkerPool} -  Uncaught exception {org.apache.axis2.transport.base.threads.NativeWorkerPool}
java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to org.apache.axiom.soap.SOAPFault
    at org.apache.axiom.soap.impl.llom.SOAPBodyImpl.getFault(SOAPBodyImpl.java:120)
    at org.apache.synapse.util.POXUtils.convertSOAPFaultToPOX(POXUtils.java:46)
    at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:93)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:321)
    at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:94)
    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.filters.FilterMediator.mediate(FilterMediator.java:160)
    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.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:261)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:486)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:225)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:701)
我使用curl直接执行

curl -v -H "Accept: application/json" -H "Content-Type:application/json" -d '{"username":"vikash|214057357158656","password":"gbadmin"}' http://redmine.youtility.in:8282/services/ServiceLogin2.0
axix2.xml消息格式化程序和生成器

 <messageFormatter contentType="application/json" 
class="org.apache.axis2.json.JSONMessageFormatter"/>

<messageFormatter contentType="application/json/badgerfish"                              
    class="org.apache.axis2.json.JSONBadgerfishMessageFormatter"/>

<messageBuilder contentType="application/json"                            
    class="org.apache.axis2.json.JSONBuilder"/>

<messageBuilder contentType="application/json/badgerfish"                            
    class="org.apache.axis2.json.JSONBadgerfishOMBuilder"/>

代理


$1
$2
$3
101500,101501,101506,101507,101508,101503,50000
30
1
300
顺序:

<sequence xmlns="http://ws.apache.org/ns/synapse"
          name="ServiceLogin_Seq2.0"
          onError="fault" statistics="enable">
   <property name="messageType" value="application/json" scope="axis2"/>
   <property name="FORCE_ERROR_ON_SOAP_FAULT" value="true"/>
   <property name="HTTP_METHOD" value="POST" scope="axis2"/>
   <property name="RESPONSE" value="true" scope="default" type="STRING"/>
   <property xmlns:ns="http://org.apache.synapse/xsd"
             xmlns:p="http://authentication.services.core.carbon.wso2.org"
             name="Return"
             expression="//p:return/text()"
             scope="default"
             type="STRING"/>

<filter xmlns:ns="http://org.apache.synapse/xsd" xpath="get-property('Return')=''">
      <then>
         <payloadFactory>
            <format>
               <ResponseJSON xmlns="">
                  <Authentication>$1</Authentication>
                  <Exception>Service trying to connect inactive service</Exception>
                  <Status>101503</Status>
               </ResponseJSON>
            </format>
            <args>
               <arg evaluator="xml" expression="get-property('Return')"/>
            </args>
         </payloadFactory>
         <send/>
      </then>
      <else>
         <filter xpath="get-property('Return')='false'">
            <then>
               <payloadFactory>
                  <format>
                     <ResponseJSON xmlns="">
                        <Authentication>$1</Authentication>
                        <Exception>Authentication Failed</Exception>
                        <Status>401</Status>
                     </ResponseJSON>
                  </format>
                  <args>
                     <arg evaluator="xml" expression="get-property('Return')"/>
                  </args>
               </payloadFactory>
               <send/>
            </then>
            <else>
               <payloadFactory>
                  <format>
                     <ResponseJSON xmlns="">
                        <Body>
                           <Datalist>
                              <Authentication>$1</Authentication>
                          </Datalist>
                        </Body>
                     </ResponseJSON>
                  </format>
                  <args>
                  <arg evaluator="xml" expression="get-property('Return')"/>
                  </args>
               </payloadFactory>
               <send/>
            </else>
         </filter>
      </else>
   </filter>
<log level="custom">          
        <property name="LogLocation" value="ServiceLogin_Seq2.0"/>
        <property name="Usercode" expression="get-property('usercode')"/>
            <property name="Clientid" expression="get-property('clientid')"/>
            <property name="requestMsgId" expression="get-property('requestMsgId')"/>
            <property name="responseMsgId" expression="get-property('MessageID')"/>
         </log>
</sequence>

$1
服务正在尝试连接非活动服务
101503
$1
身份验证失败
401
$1

在此处连接您的synapse。Hi-Ushani请参考连接的synapse。实际上,这来自soap消息SOAPAction:,MessageID:urn:uuid:69df6336-15d6-46d1-bbd6-bd969d82e51a,方向:响应,信封:当后端服务响应正常时,您能否捕获后端服务请求/响应,要模拟并尝试您的场景,请在此处连接您的synapse。嗨,Ushani,请参考连接的synapse。实际上,这来自soap消息SOAPAction:,MessageID:urn:uuid:69df6336-15d6-46d1-bbd6-bd969d82e51a,方向:响应,信封:当后端服务响应正常时,您能否捕获后端服务请求/响应,要模拟它并尝试您的场景??
<sequence xmlns="http://ws.apache.org/ns/synapse"
          name="ServiceLogin_Seq2.0"
          onError="fault" statistics="enable">
   <property name="messageType" value="application/json" scope="axis2"/>
   <property name="FORCE_ERROR_ON_SOAP_FAULT" value="true"/>
   <property name="HTTP_METHOD" value="POST" scope="axis2"/>
   <property name="RESPONSE" value="true" scope="default" type="STRING"/>
   <property xmlns:ns="http://org.apache.synapse/xsd"
             xmlns:p="http://authentication.services.core.carbon.wso2.org"
             name="Return"
             expression="//p:return/text()"
             scope="default"
             type="STRING"/>

<filter xmlns:ns="http://org.apache.synapse/xsd" xpath="get-property('Return')=''">
      <then>
         <payloadFactory>
            <format>
               <ResponseJSON xmlns="">
                  <Authentication>$1</Authentication>
                  <Exception>Service trying to connect inactive service</Exception>
                  <Status>101503</Status>
               </ResponseJSON>
            </format>
            <args>
               <arg evaluator="xml" expression="get-property('Return')"/>
            </args>
         </payloadFactory>
         <send/>
      </then>
      <else>
         <filter xpath="get-property('Return')='false'">
            <then>
               <payloadFactory>
                  <format>
                     <ResponseJSON xmlns="">
                        <Authentication>$1</Authentication>
                        <Exception>Authentication Failed</Exception>
                        <Status>401</Status>
                     </ResponseJSON>
                  </format>
                  <args>
                     <arg evaluator="xml" expression="get-property('Return')"/>
                  </args>
               </payloadFactory>
               <send/>
            </then>
            <else>
               <payloadFactory>
                  <format>
                     <ResponseJSON xmlns="">
                        <Body>
                           <Datalist>
                              <Authentication>$1</Authentication>
                          </Datalist>
                        </Body>
                     </ResponseJSON>
                  </format>
                  <args>
                  <arg evaluator="xml" expression="get-property('Return')"/>
                  </args>
               </payloadFactory>
               <send/>
            </else>
         </filter>
      </else>
   </filter>
<log level="custom">          
        <property name="LogLocation" value="ServiceLogin_Seq2.0"/>
        <property name="Usercode" expression="get-property('usercode')"/>
            <property name="Clientid" expression="get-property('clientid')"/>
            <property name="requestMsgId" expression="get-property('requestMsgId')"/>
            <property name="responseMsgId" expression="get-property('MessageID')"/>
         </log>
</sequence>