zoukankan      html  css  js  c++  java
  • Spring Security 核心组件?

    SecurityContext
    SecurityContext是安全的上下文,所有的数据都是保存到SecurityContext中。
    可以通过SecurityContext获取的对象有:

    Authentication
    SecurityContextHolder
    SecurityContextHolder用来获取SecurityContext中保存的数据的工具。通过使用静态方法获取SecurityContext的相对应的数据。

    SecurityContext context = SecurityContextHolder.getContext();
    Authentication
    Authentication表示当前的认证情况,可以获取的对象有:
    UserDetails:获取用户信息,是否锁定等额外信息。
    Credentials:获取密码。
    isAuthenticated:获取是否已经认证过。
    Principal:获取用户,如果没有认证,那么就是用户名,如果认证了,返回UserDetails。
    UserDetails:
    public interface UserDetails extends Serializable {

    Collection<? extends GrantedAuthority> getAuthorities();
    String getPassword();
    String getUsername();
    boolean isAccountNonExpired();
    boolean isAccountNonLocked();
    boolean isCredentialsNonExpired();
    boolean isEnabled();
    

    }
    UserDetailsService
    UserDetailsService可以通过loadUserByUsername获取UserDetails对象。该接口供spring security进行用户验证。
    通常使用自定义一个CustomUserDetailsService来实现UserDetailsService接口,通过自定义查询UserDetails。

    AuthenticationManager
    AuthenticationManager用来进行验证,如果验证失败会抛出相对应的异常。
    PasswordEncoder
    密码加密器。通常是自定义指定。

    BCryptPasswordEncoder:哈希算法加密

    NoOpPasswordEncoder:不使用加密

  • 相关阅读:
    IE浏览器不能启动,双击启动图标无效
    提示Internet Explorer 9 已安装在此系统上,无法完成安装
    React项目跨域处理(两种方案)
    Mock数据模拟Node服务器
    【LeetCode】15. 3Sum
    【C++】int与string互转
    【LeetCode】37. Sudoku Solver
    【LeetCode】149. Max Points on a Line
    【LeetCode】104. Maximum Depth of Binary Tree (2 solutions)
    【LeetCode】140. Word Break II
  • 原文地址:https://www.cnblogs.com/WangMengyi/p/14479272.html
Copyright © 2011-2022 走看看