添加到POM依赖
<dependency>
<groupId>com.github.759434091</groupId>
<artifactId>jwt-security-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
JwtTokenUtils
Jwt Token 生成和解析工具。有多个构造器选择,可以自定义签名,算法,Key.JwtUserFactory
根据Claims
生成JwtUser
若没有声明WebSecurityConfigurerAdapter
Bean,
将会使用JwtConfigurerAdapter
作为默认配置。
在你的WebSecurityConfigurerAdapter
中的configure(HttpSecurity http)
方法中添加如下代码
http
.apply(new JwtConfigurer<>(jwtTokenUtils(), jwtUserFactory()))
其中jwtTokenUtils
和jwtUserFactory
为先前声明的Bean。
请自定义验证策略,例如用户名密码验证,可以配合Spring Security的其他安全策略进行验证,又或者自定义验证Controller
。
验证成功之后,自行决定Token需要携带的Claims
,通过调用如下方法生成Token并返回给前端。
其中expireField和expireAmount为Calendar类型的参数
jwtTokenUtils.createJWT(Map<String, Object> claims, int expireField, int expireAmount)
前端将Token缓存,当需要认证的时候请将Token以如下形式附加在请求头
Authorization: Bearer your_token
请求头为Authorization
,其值为"Bearer " + 你的Token,请注意空格的存在,前缀总共有7位。
JwtUser
通过jwtUserFactory
解析Token中的payloadClaims
生成。
生成之后可以在Controller
通过如下形式获取,在参数加上如下参数即可获得
@TokenUser JwtUser xxx
JWT-Security 支持Spring Security的Authority权限控制,只需要在JwtUserFactory
Bean中实现生成的JwtUser
中的getGrantedAuthorities
方法。