我们想在 apache-camel 中使用 AWS SDK InitiateAuth 实现接口(interface)的认证,其中 AuthFlowType 是 USER_SRP_AUTH。是否已经有 Camel 组件?我找到了这个 list of camel aws components ,但我不知道我是否可以使用其中之一。我会证明这一点,但也许你们中有人对此有一些经验。
[编辑] 其实我想用 camel-cxf 调用 WebService,为此我应该使用 AWS SDK 进行身份验证。毕竟,这是一个 OAuth 流程,我也可以用 CXF 来描绘它吗?
最佳答案
当然,Apache Camel 有大量适用于亚马逊的组件。请看这个reference
每个组件都有自己的方法来实现你想要的。在几乎每个组件中,您都必须进行身份验证。 Camel 是关于发送消息的,每条消息都应该用适当的标题和正文装饰。
This可能会派上用场。应该有用于身份验证的 header 。
据我所知,亚马逊使用队列来发送和接收数据。隐藏在上面链接后面的组件应该可以解决问题
如果您的 Camel 应用程序在防火墙后面运行,或者如果您需要对 AmazonSQSClient 配置进行更多控制,您可以创建自己的实例:
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);
AmazonSQSClient client = new AmazonSQSClient(awsCredentials, clientConfiguration);
并在您的 Camel aws-sqs 组件配置中引用它:
from("aws-sqs://MyQueue?amazonSQSClient=#amazonSQSClient&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
关于java - 是否存在使用 AWS SDK InitiateAuth 的 Camel 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52258133/