SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端

使用Mybatis查询客户端信息

前面的例子使用了默认的jdbc配置来动态从数据库查询客户端信息,下面来改用更加灵活的mybatis来实现,改用mybatis,首先pom中换成mybatis的依赖:

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第1张图片

然后新建一个实体类,并实现查询需要的 ClientDetails 接口:

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第2张图片

由于接口默认需要实现的方法有很多返回类型为集合类型的,所以这里的部分get方法做一些调整,例如:

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第3张图片

其它的可以自行下载源代码查看。实体类建好以后,我们就可以查询客户端了:

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第4张图片

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第5张图片

实现 ClientDetailsService 接口

查询方法写好以后,类似前面的登录用户校验,这里要做一个授权的客户端校验,需要实现 ClientDetailsService 接口:

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第6张图片

最后修改授权配置类:

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第7张图片

测试

测试流程与前面类似,获取的令牌如下:

SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端_第8张图片

代码地址:https://gitee.com/blueses/spring-boot-security 21 22

你可能感兴趣的:(SpringBootSecurity学习(18)前后端分离版之 OAuth2.0 数据库(MyBatis)存储客户端)