【问题标题】:WSO2 ESB CONDITIONAL Router For blocking Request bug?WSO2 ESB 条件路由器用于阻止请求错误?
【发布时间】:2015-01-30 10:56:06
【问题描述】:

我在 WSO2 ESB 4.8.1 上。 如果它们的路径与正则表达式匹配,我需要阻止一些请求。所以我已经实现了这个代理和这些序列:

在我的代理中:

  <target>
  <inSequence>        
     <sequence key="MySequence"></sequence>
     <send>
         <endpoint key="epProva"></endpoint>
     </send>
  </inSequence>

MySequence 在哪里:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="MySequence">        
     <conditionalRouter continueAfter="true">
        <conditionalRoute breakRoute="true" asynchronous="true">
           <condition>
              <match type="url" regex=".*/my/path/.*"></match>
           </condition>
           <target sequence="conf:/BannedListMessage"></target>
        </conditionalRoute>
     </conditionalRouter>     
</sequence>

BannedListMessage 在哪里:

<sequence xmlns="http://ws.apache.org/ns/synapse">   
   <header name="To" action="remove"></header>
   <property name="HTTP_SC" value="401" scope="axis2"></property>
   <property name="RESPONSE" value="true"></property>
   <property name="NO_ENTITY_BODY" action="remove" scope="axis2"></property>
   <payloadFactory media-type="json">
      <format>
        {"code":"401", "unhautorized."}      
     </format>
  </payloadFactory>
  <property name="messageType" value="application/json" scope="axis2"></property>
   <respond></reposnd> 
</sequence>

如果请求地址与条件路由器内的正则表达式匹配的 url,esb 唯一要做的就是发送 401 未经授权的消息,而不允许请求到达服务器。

使用此配置,我会获得错误的行为。 esb 向我发送 401 响应,但请求清楚地到达服务器(所以我认为条件路由器不会阻止请求流到达发送到 epProva 端点)。

有人建议我使用条件路由器来获得我想要的阻塞行为。

相反,如果我在下面的代码中使用 switch 中介替换 MySequence,我会得到正确的行为:

<sequence xmlns="http://ws.apache.org/ns/synapse">  
     <switch xmlns:m0="http://services.samples" source="get-property('requestURL')">
        <case regex=".*/aggregato/C/sysadmin/mostra_contenuto/.*">
           <sequence key="conf:/BannedListMessage"></sequence>
        </case>
     </switch>
</sequence>

所以问题是:

  • 我是否以错误的方式使用条件路由器?

  • 这是条件路由器的错误吗?

【问题讨论】:

    标签: wso2 conditional wso2esb mediator


    【解决方案1】:

    可能是您的 BannedListMessage 中的拼写错误

    response mediator的用法是

    希望对你有帮助 问候

    【讨论】:

    • 我写了正确的 标签... wso2 编辑器在我将序列保存到 后更改它
    猜你喜欢
    • 1970-01-01
    • 2023-01-19
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多