【问题标题】:How to call REST API with Oauth Header in Apache Camel?如何在 Apache Camel 中使用 Oauth 标头调用 REST API?
【发布时间】:2020-10-02 09:03:10
【问题描述】:

我正在使用具有 OAuth1.0 授权的 API。我想使用授权 Oauth 标头调用该 API:-
我已经使用从服务器接收到的令牌/密钥创建了授权标头(ConsumerKey、keyalias 和密码),并希望通过调用发回令牌或 OAuth 标头。

我在处理器(实现骆驼处理器的类)中做了所有这些事情,现在想做:-

  1. 在处理器本身中使用此 Oauth 标头(字符串类型)调用其余 API。
  2. 否则发送此标头作为交换,并在骆驼的to() 端点中获取此值,然后在其中调用 REST API。

问题是我只想在 processor 中使用 Oauth 标头进行调用。 然后尽可能尝试访问to()端点中的标头并进行调用。

【问题讨论】:

    标签: java rest oauth apache-camel authorization


    【解决方案1】:

    您可以在处理器中设置 Authorization 标头,然后使用 .to() 发送 REST 请求

    public void process(Exchange exchange) throws Exception {
        String token = //your logic to get the token
        exchange.getIn().setHeader("Authorization", "Bearer " + token)
    }
    
    .to("your/rest/endpoint") 
    

    Camel 会自动将邮件头复制到外发邮件上。

    【讨论】:

    • 我无法使用以下方法添加标头:- exchange.getIn().setHeader("Authorization", token); 不需要“Bearer”。
    • 是的,授权类型大部分时候不需要,这里讨论一下:security.stackexchange.com/a/120244
    • 好的。感谢@burki 的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多