springSecurity 源码分析笔记

springSecurity 源码分析

一、基本原理

实际上是过滤器链
springSecurity 源码分析笔记_第1张图片

FilterSecurityInterceptor

ExceptionTranslationFilter

UsernamePasswordAuthenticationFilter

二、过滤器如何加载?

springboot 已经帮我们做了。

如果不用springboot,则需要自己实现:
springSecurity 源码分析笔记_第2张图片

三、两个重要接口

UserDetailsService接口

接口作用:查询数据库中用户名和密码的过程
springSecurity 源码分析笔记_第3张图片

PasswordEncoder接口

接口作用:数据加密接口,用于返回USER对象里面密码加密

四、web权限方案

(1)认证
(2)授权

1、设置登录的用户名和密码

方式一:通过配置文件
方式二:通过配置类
方式三:自定义编写实现类

springSecurity 源码分析笔记_第4张图片

第一步:
springSecurity 源码分析笔记_第5张图片

五、基于角色和权限的访问控制

hasAuthority 方法,有权限,返回TRUE,否则返回FALSE。

六、项目完整功能

springSecurity 源码分析笔记_第6张图片

七、Springsecurity 配置信息

    /**
     * anyRequest          |   匹配所有请求路径
     * access              |   SpringEl表达式结果为true时可以访问
     * anonymous           |   匿名可以访问
     * denyAll             |   用户不能访问
     * fullyAuthenticated  |   用户完全认证可以访问(非remember-me下自动登录)
     * hasAnyAuthority     |   如果有参数,参数表示权限,则其中任何一个权限可以访问
     * hasAnyRole          |   如果有参数,参数表示角色,则其中任何一个角色可以访问
     * hasAuthority        |   如果有参数,参数表示权限,则其权限可以访问
     * hasIpAddress        |   如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问
     * hasRole             |   如果有参数,参数表示角色,则其角色可以访问
     * permitAll           |   用户可以任意访问
     * rememberMe          |   允许通过remember-me登录的用户访问
     * authenticated       |   用户登录后可访问
     */

关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。

你可能感兴趣的:(Springboot笔记,spring,boot,安全,后端)