SpringSecurity 原理

SecurityContextPersistenceFilter 负责 在请求进来的时候 从Session 中将 SecurityContext 取出来,在请求返回给前端前将 SecurityContext 放回到 Session 中去。

SecurityContextHolder 将 SecurityContext 通过 ThreadLocal 保存,让同一线程中 始终能通过 SecurityContextHolder 取到 SecurityContext 。
通过 SecurityContextHolder 获取认证信息:
@GetMapping("/me") public Object getCurrentUser() { return SecurityContextHolder.getContext().getAuthentication(); }
//或者
@GetMapping("/me")
public Object getCurrentUser(Authentication authentication) {
return authentication.getAuthorities();
}
//或者 @GetMapping("/me") public Object getCurrentUser(@AuthenticationPrincipal UserDetails user) { return user; }
自定义的规则校验

短信验证码登录(此处只校验该手机号是否存在,不验证验证码是否正确,那个工作是在另外一个filter中进行的)

浙公网安备 33010602011771号