2013-04-30 70 views
0

我正在基于URL过滤做的,所以我想知道从哪个服务我收到请求.Means我想知道客户端的URL如何知道客户端的URL在WSO2 ESB的过滤

<proxy xmlns="http://ws.apache.org/ns/synapse" name="Emp" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
     <inSequence>   
    <property name="username" expression="//username/text()" scope="default" type="STRING"/> 
    <property name="password" expression="//password/text()" scope="default" type="STRING"/>   
     <payloadFactory>    
      <format>    
       <send xmlns="">     
        <username>$1</username>     
        <password>$2</password>    
       </send>    
      </format>    
      <args>    
       <arg expression="get-property('username')"/>    
       <arg expression="get-property('password')"/>    
      </args>   
     </payloadFactory>   
     <send receive="Emp_Seq">    
      <endpoint> 
<address uri="http://192.168.1.65:8282/services/Login"/> 
</endpoint>   
     </send>  
     </inSequence> 
     <outSequence/> 
    </target> 
    <description></description> 
</proxy> 


URL of above Proxy is http://192.168.1.65:8282/services/Emp 

我的第二个代理是会基于第一个代理

<proxy xmlns="http://ws.apache.org/ns/synapse" name="Login" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
     <inSequence> 
     <property name="client_ip_address" expression="get-property('axis2','REMOTE_ADDR')" scope="default" type="STRING"/> 
     <property name="username" expression="//username/text()" scope="default" type="STRING"/> 
     <property name="password" expression="//password/text()" scope="default" type="STRING"/> 
     <property name="From" expression="get-property('From')"/> 
<property name="Address" expression="get-property('To')"/> 
<filter xmlns:ns="http://org.apache.synapse/xsd" xpath="get-property('From')='/services/Emp'"> 
     <then> 
     <payloadFactory> 
      <format> 
       <ResponseJSON xmlns=""> 
        <Status>404</Status> 
        <Exception>Not Found</Exception> 
        <Total>0</Total> 
       </ResponseJSON> 
      </format> 
     </payloadFactory> 
     <send/> 
     </then> 
     <else> 
     <payloadFactory> 
      <format> 
       <p:login xmlns:p="http://authentication.services.core.carbon.wso2.org"> 
        <p:username>$1</p:username> 
        <p:password>$2</p:password> 
        <p:remoteAddress>$3</p:remoteAddress> 
       </p:login> 
      </format> 
      <args> 
       <arg expression="//username/text()"/> 
       <arg expression="//password/text()"/> 
       <arg expression="get-property('client_ip_address')"/> 
      </args> 
     </payloadFactory> 
     <header name="Action" value="urn:login"/> 
     <log level="full"/> 
     <send receive="Login_Seq"> 
      <endpoint> 
       <address uri="https://192.168.1.65:9443/services/AuthenticationAdmin" format="soap11"/> 
      </endpoint> 
     </send> 
    </filter> 


     </inSequence> 
     <outSequence> 
     <log level="full"/> 
       </outSequence> 
    </target> 
    <description></description> 
</proxy> 

问题的一些逻辑得到属性(“至”)是给地址= /服务/登录,其中作为获得属性(“从')给senderAddress =空 我怎样才能管理这个我trie d与很多propertys即使它不是工作

<property name="senderAddress" expression="get-property('transport', 'From')"/> 
<property name="Sender Address" expression="$url:From"/> 
<header name="From" expression="get-property('From')"/> 
<property name="PRESERVE_WS_ADDRESSING" value="true"/> 
      <property xmlns:wsa="http://www.w3.org/2005/08/addressing" name="$header" expression="$header/wsa:From"/> 

这propertys也没有工作,我们没有在WSO2 ESB任何选项,如果你知道这一点,请编辑我的代理约..its简单depanding逻辑,但它不是在WSO2 感谢工作提前

回答