一.SpringSecurityOAuth简介
grant_type为授权模式password为密码模式
@EnableAuthorizationServer表示定义认证服务器
@EnableResourceServer表示定义资源服务器
二.Token处理
TokenStore用于定义Token存储
TokenEnhancer用于定制化Token,往里面添加信息
-
基本Token参数配置
- 过期时间,接受什么grant_type,怎么存都是可以配的,需要继承AuthorizationServerConfigurerAdapter(并实现configure方法)
- 在参数为endpoints的configure方法中设置token包含什么信息
- 在参数为clients的方法中设置token的存储(是inMemory还是到数据库中),接受什么grant_type,过期时间设置等等
-
使用JWT替换默认的Token
-
JWT:Json Web Token令牌标准
- 自包含:里面包含有意义的信息的,自定义,原始的Token是通过UUID生成的
- 密签:首先发送的token中是不会包含密码这样关键信息的,其次token是可以经过指定密钥进行签名的(签名是防止被篡改)
- 可扩展:包含的信息是可以自定义的,故可以进一步添加需要的信息
-
配置
-
需要配置JWTTokenStore的Bean(用于存取)
-
需要配置JWTAccessTokenConverter的Bean(用于进行签名)
@Bean public JwtAccessTokenConverter jwtAccessTokenConverter() { JwtAccessTokenConverter accessTokenConverter = new JwtAccessTokenConverter(); accessTokenConverter.setSigningKey("");//设置密钥 return accessTokenConverter; }
-
配置JWTTokenEnhancer的Bean(用于向Token中添加对应的内容)
-
自定义一个类SelfJwtTokenEnhancer实现TokenEnhancer
public class SelfJwtTokenEnhancer implements TokenEnhancer{ </
-
-
-