Spring Cloud进阶之路 | 十九:授权服务(Spring Cloud Oauth2)TokenStore之JdbcTokenStore

前言

前面的文章Spring Cloud进阶之路 | 八:授权服务(Spring Cloud Oauth2)中,介绍了基于Spring Cloud Oauth2框架的微服务授权服务器。客户端申请的授权token,和默认的ClientDetails存储方式一样,均存储在内存中,一旦服务重启,势必会造成所有客户端已申请且未过期的token失效。所以,和ClientDetails一样,也需要对token进行持久化存储。基于上一篇文章 Spring Cloud进阶之路 | 十八:授权服务(Spring Cloud Oauth2)ClientDetailsService之JdbcClientDetailsService中建立的数据结构,本文即介绍基于此数据结构的数据库存储token方式,即JdbcTokenStore。

准备工作

基于上一篇文章 Spring Cloud进阶之路 | 十八:授权服务(Spring Cloud Oauth2)ClientDetailsService之JdbcClientDetailsService中的授权服务xmall-auth,及其对应的数据结构。

 

默认的TokenStore

在没介绍如何配置JdbcTokenStore之前,先说明一下,框架默认的TokenStore逻辑么。前面已经说过,框架默认的TokenStore为内存存储,即InMemoryTokenStore。

见诸上图逻辑,框架默认的的TokenStore为InMemoryTokenStore。

 

配置

通过方法public void configure(ClientDetailsServiceConfigurer clients) throws Exception配置TokenStore。

@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
    endpoints.authenticationManager(authenticationManager)
        .userDetailsService(userDetailsService)
        .allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST)
        .tokenStore(new JdbcTokenStore(dataSource));
    ;
}

 

验证

启动xmall-auth工程,端口为7777。

访问http://localhost:7777/oauth/token,输入一众参数,诸如client_id、client_secret、grant_type等,点击Send,即出现access_token、refresh_token等信息。

查看数据库,表oauth_access_token中,已存储了此次申请的token信息。

 

源码


github

https://github.com/liuminglei/SpringCloudLearning/tree/master/19/

gitee

https://gitee.com/xbd521/SpringCloudLearning/tree/master/19/

 

 

 

本文系【银河架构师】原创,如需转载请在文章明显处注明作者及出处。

微信搜索【银河架构师】,发现更多精彩内容。

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值