我使用Redis缓存令牌使用spring安全性。我将令牌保存为redis:
@Bean
public TokenStore redisTokenStore() {
return new RedisTokenStore(redisConnectionFactory);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager)
.allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST)
.tokenStore(redisTokenStore()) // registering redisTokenStore bean
.tokenEnhancer(new CustomTokenEnhancer());
}
将成功保存为redis。但是我也想将令牌保存到mysql。我想同时保存令牌:redis和数据库。但是我使用时:
@Bean
public TokenStore tokenStore() {
return new JdbcTokenStore(dataSource);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager)
.allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST)
.tokenStore(redisTokenStore()) // registering redisTokenStore bean
.tokenStore(tokenStore())
.tokenEnhancer(new CustomTokenEnhancer());
}
它不起作用。只保存到我的redis。它没有保存到mydatabase。但是当我评论redis bean时。它保存到数据库。
我有三个问题: