许多API需要单独调用身份验证服务器来检索用于发出主请求的令牌(有时是主主机)。有些API希望您为每个主请求发出此初步调用,但其他API希望您存储令牌并在一段时间内将其用于所有请求。
对于我的流程,我从队列中接收一个负载,需要将其转换为API请求。这一部分对于Camel来说很容易。但是对于第一种身份验证方法,即为每个主请求发出一个auth请求,我不知道如何在调用授权服务器后保留请求。
对于第二种身份验证方法,这里有一个保留令牌的示例:REST service call with Camel which requires authentication api called first
对于一个非常常见的集成场景来说,这看起来非常复杂。有没有更好的例子来说明如何用Came实现这两种方法?
2条答案
按热度按时间agxfikkp1#
我在想这样的事情(直观的解决方案,根本没有经过测试!)
诀窍是对auth服务器进行“In-Only”调用(以保留原始请求),并将获得的令牌放入一个属性中,以便(对API的)下一个调用可以使用它:
当然,这可以通过高速缓存所获得的令牌来容易地优化,以避免对身份服务器的不必要的调用。
不确定它会起作用,但这可能会给予你一些启发。
njthzxwz2#
我有类似的需求,但尚未实施解决方案。
为了不丢失原来的Exchange,
enrich
似乎是调用获取令牌的路由的更好方法。https://camel.apache.org/components/3.13.x/eips/enrich-eip.html您还必须实现AggregationStrategy或使用预定义的策略。