Jwt认证过滤器实现

1.1 目的

  定义Jwt过滤器后,当用户是已登录状态时,在请求头中携带token便可访问相关网页。

1.2 思路

1. 定义JwtAuthenticationTokenFilter类继承Spring中的OncePerRuquestFilter,这样重写doFilterInternal方法便可以获取到前端发送的请求信息。

2.从请求头中获取token,根据Jwt中的解密方法进行解密得到UserId,根据UserId获取存储在Redis中的用户信息。将用户信息封装到Authentication对象中(因为要放到SecurityContextHolder必须是该对象),注意这里使用的构造方法必须是被授权的那个构造方法。

3.将封装后Authentication对象放到SecurityContextHolder中,因为后面的过滤器都是从该对象中获取用户信息。

4.在SecurityConfig中,配置http.addFilterBefore。添加过滤器并在UserPassFilter.class(简写的字节码)过滤器之前执行

1.3 过程实现

定义过滤器

Jwt认证过滤器实现_第1张图片

Jwt认证过滤器实现_第2张图片 

配置类

Jwt认证过滤器实现_第3张图片 

 

你可能感兴趣的:(后端,java,spring,boot,spring)