gpt4 book ai didi

java - 在mule3中,如何为choice-when路由器设置自定义表达式?

转载 作者:行者123 更新时间:2023-12-01 18:45:05 25 4
gpt4 key购买 nike

我是 Mule 新手,我想验证 URI 中的时间戳和随机数参数以防止重放攻击。我使用choice-when路由器,当时间戳和nonce有效时(验证过程很复杂),将请求转发到后端rest服务,否则返回错误代码和消息。我发现很多 MEL 用法用于 choice-when,但是我可以使用 java 定义自定义表达式吗?有一个可用的例子吗?URI 示例:

http://muledemo.org/ci2/ni/del?id=0xe413&timestamp=1376022133&nonce=a03ed9c

代码片段:

<choice doc:name="Choice">
<when expression="???how to call a java validator???">
</when>
<otherwise>
<processor-chain doc:name="Processor Chain">
<echo-component doc:name="Echo" />
<http:outbound-endpoint exchange-pattern="request-response" method="POST"
address="http://localhost:8081#[message.inboundProperties['http.request']]" doc:name="HTTP" />
</processor-chain>
</otherwise>
</choice>

编辑:

XML 配置:

<spring:beans>
<spring:bean id="replayAttackCheck" class="org.jamee.demo.mule.ReplayAttackCheck"/>
</spring:beans>

... ...

<when expression="#[replayAttackCheck.validate(payload)]">
<expression-component doc:name="Check Required Params"><![CDATA[payload="{\"code\":\"PA002\", \"message\":\"timestamp or nonce is illegal\"}"]]>
</expression-component>
</when>

错误日志:

ERROR 2013-08-09 14:32:39,090 [[demo.router].connector.http.mule.default.receiver.02] org.mule.exception.DefaultMessagingExceptionStrategy: 
********************************************************************************
Message : Execution of the expression "replayAttackCheck.validate(payload)" failed. (org.mule.api.expression.ExpressionRuntimeException). Message payload is of type: HashMap
Code : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. [Error: unresolvable property or identifier: replayAttackCheck]
[Near : {... replayAttackCheck.validate(pay ....}]

最佳答案

正确的 MEL 语法:

<when expression="#[app.registry.replayAttackCheck.validate(payload)]">

关于java - 在mule3中,如何为choice-when路由器设置自定义表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18139955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com