简介
通过JWT每次请求带上token可以进行无状态登录,不必保存Session等。
创建
在IDEA中使用Spring Initializr创建一个Security项目,注意,创建之后maven是不可用的,还需要添加maven支持,模块右键,Add Framework Support,选择maven。
依赖
添加JWT依赖,和一个web依赖包,毕竟要用来登录认证。
<!--jwt-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
准备
提前准备好一些实体类,和一些常量。
User实体类,实现了Spring Security的UserDetails接口,其实没用到这些方法,不实现也可以。
@Entity
public class User implements UserDetails {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;
}
@Override
public String getPassword() {
return password;
}
@Override
public String getUsername() {
return username;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
一些常量,SECRET token签名用的,以及token过期时间等。
public class SecurityConstants {
public static final String SECRET = "SecretKeyToGenJWTs";
public static final long EXPIRATION_TIME = 864_000_000; // 10 days

最低0.47元/天 解锁文章
610

被折叠的 条评论
为什么被折叠?



