从关键类认识 Spring security

来源:互联网 发布:网络新媒体就业前景 编辑:程序博客网 时间:2024/06/13 18:20
    //生成默认登录界面的类    DefaultLoginPageGeneratingFilter defaultLoginPageGeneratingFilter;    //处理登录业务的类    UsernamePasswordAuthenticationFilter authenticationFilter;    //认证信息接口,在登录认证成功后生成一个包含用户权限等信息的 Authentication 对象 将其存放在 SecurityContext 中    Authentication authentication;    //用来保存  SecurityContext,SecurityContext 含有当前正在访问系统的用户的详细信息    SecurityContextHolder contextHolder;    //处理认证(Authentication)请求的接口 只定义了一个方法 authenticate() 默认实现是 ProviderManager    AuthenticationManager authenticationManager;    //认证提供者(没有理解很清楚)    AuthenticationProvider authenticationProvider;    //允许我们从数据库来加载 UserDetails,其底层使用的是 Spring 的 JdbcTemplate 进行操作    JdbcDaoImpl jdbcDaoImpl;    //用户登录信息接口 包含有 用户名、密码、权限等与认证相关的信息    UserDetails userDetails;    //仅包含loadUserByUsername()一个方法的接口,改方法返回一个 UserDetails 对象,    //通常使用该方法来获取 UserDetails 进行认证    UserDetailsService userDetailsService;    //GrantedAuthority 接口中只定义了一个 getAuthority() 方法,该方法返回一个字符串,    //表示对应权限的字符串表示,如果对应权限不能用字符串表示,则应当返回 null。    GrantedAuthority grantedAuthority;

security认证过程:

1.用户使用用户名和密码进行登录。2.Spring Security 将获取到的用户名和密码封装成一个实现了 Authentication 接口的 UsernamePasswordAuthenticationToken。3.将上述产生的 token 对象传递给 AuthenticationManager 进行登录认证。4.AuthenticationManager 认证成功后将会返回一个封装了用户权限等信息的 Authentication 对象。5.通过调用 SecurityContextHolder.getContext().setAuthentication(...) 将 AuthenticationManager 返回的 Authentication 对象赋予给当前的 SecurityContext。
0 0
原创粉丝点击