【发布时间】:2017-10-17 09:11:24
【问题描述】:
我有一个连接到 RabbitMQ 服务器的 Spring Cloud Stream 应用程序。我们在 Rabbit MQ 中使用的是 rabbitmq-auth-backend-uaa 插件,但这不是问题。
此插件会检查一个 oAuth2.0 JWT 令牌,该令牌在创建与 Rabbit MQ 的连接时作为用户名发送。
为此,我的 Spring 应用程序中有以下代码:
@Bean
@Primary
ConnectionFactory connectionFactory() throws Exception {
//These lines get the token from the UAA automatically.
MyTokenService tokenService = new MyTokenService();
String token= tokenService.obtainAccessToken(); // HTTP POST request to the UAA
AbstractConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
connectionFactory.setUsername(token);
return connectionFactory;
}
问题是令牌每小时都会过期,因此必须重新加载连接的用户名(再次调用 tokenService.obtainAccessToken())。
这是自动完成的吗?我如何确定每次都会重新加载连接?
【问题讨论】:
标签: spring rabbitmq spring-amqp spring-cloud-stream spring-rabbit