我想在集群环境中部署REST。为此,我需要将我的OAuth 2.0令牌存储在共享令牌存储中。目前我正在使用Security的InMemoryTokenStore,它不能在多节点集群上共享。我计划用Redis存储令牌。
我发现Security的最新版本(即2.8.0 )也提供了RedisTokenStore。我对此有一些疑问:
发布于 2016-01-14 04:13:58
关于第一个问题:
首先,向您提供有关redis令牌存储的spring安全xml示例。
<!--Use Redis Token Store-->
<beans:bean id="tokenStore"
class="org.springframework.security.oauth2.provider.token.store.redis.RedisTokenStore">
<beans:constructor-arg name="connectionFactory" ref="redisConnectionFactory"/>
</beans:bean>
<!--create redis connection factory and set db 1-->
<beans:bean id="redisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<beans:property name="hostName" value="localhost"/>
<beans:property name="port" value="6379"/>
<beans:property name="password" value=""/>
<beans:property name="database" value="1"/>
</beans:bean>其次,您需要将spring数据redis和jedis jar添加到您的项目中,我使用gradle,在依赖项中添加项,如:
......
compile 'org.springframework.data:spring-data-redis:1.6.2.RELEASE'
compile 'redis.clients:jedis:2.8.0'
......关于森康德问题:
如果一个集群的所有节点使用一个reids服务器或群集,那么您的访问令牌将在所有节点之间共享。您可以检查redis db数据,并跟踪访问过程以验证这一点。所以你不用担心。
https://stackoverflow.com/questions/33755016
复制相似问题