使用 spring-authorization-server 时将 token 存储在 redis 中
使用 spring-authorization-server 。 定义tokenstore:
@Bean
public TokenStore redisTokenStore() {
RedisTokenStore redisTokenStore = new RedisTokenStore(redisConnectionFactory);
redisTokenStore.setPrefix(redisTokenPrefix);
return redisTokenStore;
}
在 spring-security-oauth 我们可以在理论中 ,我可以实现界面oauth2authorizationservice,但也许有一个更容易,更漂亮的解决方案
Is it possible to store tokens for example in Redis when use spring-authorization-server. In spring-security-oauth we can define TokenStore:
@Bean
public TokenStore redisTokenStore() {
RedisTokenStore redisTokenStore = new RedisTokenStore(redisConnectionFactory);
redisTokenStore.setPrefix(redisTokenPrefix);
return redisTokenStore;
}
In theory, i can implement interface OAuth2AuthorizationService but maybe there is an easier and more beautiful solution
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实现 OAuth2AuthorizationService 是执行此操作的正确方法。没有与 Redis 集成的内置支持。有关更多信息,请参阅 #558。
Implementing
OAuth2AuthorizationService
is the correct way to do this. There is no built-in support for an integration with Redis. See #558 for more info.我已执行以下操作将令牌信息存储到 Redis 集群中(我使用的是 spring 授权服务器 1.2.3):
MyTokenAuthService:此类实现 OAuth2AuthorizationService 并调用缓存方法来存储 OAuth2Authorization 对象。
JedisRefreshAccessToken:缓存使用 java ObjectOutputStream 创建字节数组以存储在 Redis 中,并使用 java ObjectInputStream 从 Redis 缓存中存储的字节中获取字节数组。
MyJedis:此类使用 JedisCluster 类向 Redis 缓存写入和读取字节数组。
I have done the following to store the token information into Redis cluster (I am using spring authorization server 1.2.3):
MyTokenAuthService: This class implements OAuth2AuthorizationService and calls the cache methods to store OAuth2Authorization object.
JedisRefreshAccessToken: The cache creates a byte array using java ObjectOutputStream to create bytes to store in redis and java ObjectInputStream to get it back from stored bytes in Redis cache.
MyJedis: This class uses JedisCluster class to write and read byte array from to Redis cache.