文章目录
在我们之前的文章中
Spring Security oauth2(一)快速入门,搭建授权服务器
我们使用Spring Security oauth2简单的构建了一个授权服务器,不过有一些问题,
我们为了快速入门,我们将用户的信息和客户端信息都是直接构建在内存中,这样做存在诸多问题,毕竟客户端信息还好,像用户信息是比较多的,如果我们都是直接在代码里去构建用户信息,明显不行的。
接下来,我们将一步步的使用数据库来实现。
1.使用数据库方式存储客户端信息
我们先看一下我们之前的配置
/**
* @Description:客户端配置
* @author:hutao
* @mail:hutao_2017@aliyun.com
* @date:2021年4月21日
*/
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception{
//使用我们构建的客户端信息,将其写入到内存中
ClientInfo clientInfo = new ClientInfo();
clients
// 使用内存存储
.inMemory()
//标记客户端id
.withClient(clientInfo.getClientId())
//客户端安全码 需要注意这里存储的数据是通过BCryptPasswordEncoder进行加密后的数据
.secret("{noop}"+clientInfo.getClientSecret())
//为true 直接自动授权成功返回code
.autoApprove(true)
.redirectUris("https://www.baidu.com/") //重定向uri
//允许授权范围
.scopes(clientInfo.getScop())
//token 时间秒
.accessTokenValiditySeconds(clientInfo.getTokenValid())
//刷新token 时间 秒
.refreshTokenValiditySeconds(clientInfo.getFlushTokenValid())
//允许授权类型
.authorizedGrantTypes(clientInfo.getGrantTypes());
}
1.1.准备数据库及脚本
创建客户端信息表