- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做一些看似简单但无法实现的事情。基本上我希望 WSO2 API 管理器将 URL 参数添加到 REST 调用。
我安装了 WSO2 API 管理器。我还有一个 Tomcat 运行着一个名为 someservlet 的伪造 servlet,它只记录它接收到的任何内容并返回正常。我已将 servlet 作为 API 添加到管理器中,因此我可以直接或通过 WSO2 API mgr 调用 servlet。
我能跑
curl http://localhost:8080/someservlet/servlet/toto?blob=blib&secret=pass
servlet 工作正常,它告诉我它收到了路径 /toto 和参数 blob 和 secret。
我能跑
curl -H "Authorization: Bearer [...]" --url "http://192.168.23.1:8280/someservlet/1.0/toto?blob=blib&secret=pass"
它做的完全一样。到目前为止,还不错。
我想要的是运行:
curl -H "Authorization: Bearer MqVQuHqLNphtPV3XF1CtXVmbyP8a" --url "http://192.168.23.1:8280/someservlet/1.0/toto?blob=blib"
(注意我已经删除了secret参数)
...仍然得到相同的结果。
所以基本上我希望 API 管理器添加 URL 参数 secret=pass。
使用具有属性 REST_URL_POSTFIX 的 Synapse XML 配置。
我编辑了 API 配置文件,并添加了
<property name="REST_URL_POSTFIX" value="/blob?toto=titi" scope="axis2" type="STRING"/>
现在如果我跑
curl -H "Authorization: Bearer [...]" --url "http://192.168.23.1:8280/someservlet/1.0/toti?blab=blib&secret=puss"
就好像我运行了 someservlet/1.0/blob?toto=titi:我所有的路径和参数都消失了,并被配置的替换了。嘿,这就是它应该工作的方式,不是吗!
问题:
所以基本上这并不能让我附加最后的 &secret=pass。
我找到了这个中介,虽然它可能不会成功,但这是一个很好的线索:我可以用 secret=foo 调用,然后让中介用 替换它>secret=pass.
我把它放在配置文件中:
<rewrite>
<rewriterule>
<action type="replace" value="pass" fragment="query" regex="foo"/>
</rewriterule>
</rewrite>
这行不通。起初我以为我没有正确的 Action 参数。但是错误信息是:
Malformed URL when processing /someservlet/1.0/toti?blab=blib&secret=foo
畸形?异常堆栈跟踪中有更多详细信息:
java.net.MalformedURLException: no protocol: /someservlet/1.0/toti?blab=blib&secret=foo
现在发生的事情是中介(记录或重写)收到一条消息,其“收件人:”字段指向一个没有协议(protocol)的 URL!
当然,我一直在谷歌搜索,在某些情况下我发现其他人有 logMediator: To:/blabla,在其他(大多数)情况下他们有 logMediator :至:http://blabla。我真的不明白是什么导致了差异。 :-(
所以这就是我被困的地方!! :-(
我知道可能有一个应该有效的大锤解决方案:
不过我觉得这个问题应该有更简单的解决方法。
我有一种希望,有人会给我指出一个我没有找到的简单资源(调解器、样本、语法错误等),而这正是我想要的。乐观……:-)
感谢阅读。有什么想法吗?
最佳答案
据我所知,您正在尝试将 secret=pass
附加到您的端点 url。当您调用 API 时,我相信您正在发送该参数。同时你也发送 "blab=blib"
参数。但在 ESB 中,您需要将其更改为 "toto=titi"
您使用的方法是正确的。(即:使用属性REST_URL_POSTFIX
)在这种情况下,它将替换所有请求参数。但在使用之前,您可以保存请求参数并使用 "REST_URL_POSTFIX"
您可以获得所需的最终 REST 网址。 (是的,这是您提到的“待尝试”的最终选择)在“收件人”地址中,端口号后只有地址。如果您使用 ""POST_TO_URI"
属性,yopu 将在日志中看到完整的地址 URL,但如果在 BE 服务和 ESB 之间配置了任何代理服务器,我们将使用它
关于rest - WSO2 突触 : setting a URL parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523977/
我正在使用 Siddhi [1] 的 Java 库,并且注意到检索和处理由 Siddhi 运行时生成的事件有相当大的延迟。尽管两个Siddhi事件可能具有时间差为X秒的Siddhi事件时间戳,但是在接
我阅读了网站上提供的文档,但没有太多关于如何连接到服务器并从 java 访问其 CEP 功能的信息。例如,它接受 POJO 作为事件模型还是只是 xml?我们可以从 Java 创建事件模型和查询吗?如
我是一名优秀的程序员,十分优秀!