使用SpringOAuthResttemplate的Camel Rest api使用者

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SpringOAuthResttemplate的Camel Rest api使用者相关的知识,希望对你有一定的参考价值。

我必须从我的春季启动应用程序中调用一些其他的Web服务。我打算使用Camel配置流程和其他EIP用例。一些端点正在使用oAuth2身份验证。我打算使用Spring oAuthResttempalte。互联网上的所有示例都使用restlet,CXF或camel-http。

Camel Rest Consmer

我无法找到只有spring resttemplate的单个例子。有没有人使用Spring Resttemplate实现Camel Rest消费者?

互联网上的一些示例使用jetty服务器来使用休息端点。为什么你需要一个简单的休息消费者的码头服务器?

答案

有没有人使用Spring Resttemplate实现Camel Rest消费者?

我不知道这一点,并且不太可能在那个方向找到一些东西,因为Camel已经有了consume rest endpoints的bult-in组件。

互联网上的一些示例使用jetty服务器来使用休息端点。为什么你需要一个简单的休息消费者的码头服务器?

我相信码头被用作消费者而不是生产者终点。所以你不需要“服务器”。或者您可能看到一个使用jetty作为服务器来为OAuth端点提供服务的示例?

如果您原谅我的方法,我建议继续使用Camel HTTP / Rest功能来使用OAuth来使用REST API。我找到了this example on Gist

from("direct:authService").tracing()
    .setHeader(Exchange.HTTP_PATH)
        .simple("<auth service context>/oauth2/token")
    .setHeader("CamelHttpMethod")
        .simple("POST")
    .setHeader("Content-Type")
        .simple("application/x-www-form-urlencoded")
    .setHeader("Accept")
        .simple("application/json")
    .setBody()
        .constant("grant_type=client_credentials&client_id=<client id>&client_secret=<client sec>")
    .to("https4://<remote auth service url>")
        .convertBodyTo(String.class)
    .log("response from API: " + body())
    .choice()
        .when().simple("${header.CamelHttpResponseCode} == 200")
            .unmarshal().json(JsonLibrary.Jackson, AccessResponseToken.class)
            .setHeader("jwt").simple("${body.access_token}")
            .to("direct:<some direct route>")
        .otherwise()
    .log("Not Authenticated!!!");

如果你想坚持使用OAuthRestTemplate,你可以实现一个Processorbean来包装这些调用并返回你的路由授权令牌。

以上是关于使用SpringOAuthResttemplate的Camel Rest api使用者的主要内容,如果未能解决你的问题,请参考以下文章

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份