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中进行的)

 

posted on 2018-02-06 20:01  HB1  阅读(269)  评论(0)    收藏  举报

导航