SpringSecurity安全框架的笔记

  • spring Security框架
    web开发 设置安全 主要功能是对访问进行身份认证,访问控制, 菜单权限
    只需要添加相关的启动器就可以实现,
    SpringSecurity安全框架的笔记_第1张图片
    添加成功后所有请求都会被拦截,必须走框架中自带的一个登陆页面,用户名是user 密码是控制台中有 只要通过了框架认证才可以进入访问资源
    那么如何知道spring recurity框架的认证逻辑是怎么处理的呢? 就需要学习他的一个UserDetailsService 中文是用户详细信息这个对象信息
    这是个接口,通过这个接口来做登录认证处理的
    这个接口中有方法是
    在这里插入图片描述
    意思就是说通过这个接口中的抽象方法来做登录认证逻辑的,
    这个方法返回的UserDetails也是一个接口,这个接口中的方法有
    getAuthorities() 获取对应的权限,
    getpassword()获取密码,getUsername()获取用户名,
    isAccountNonExpired()账号是否过期
    isAccountNonLocked();账号是否锁定
    isEnable()账户是否启动
    这个接口的实现类有User类,这个类的构造方法有三个参数 用户名 密码 权限

密码解析器 passwordEncoder是一个接口
有方法encoder( passwrod )客户端传递过来的密码 进行加密
matches(rawpassword,encoder) 这方法就是做比较,前面是传过来的,后面是加密后的,匹配对了就返回true
upgradeEncoding()方法是对加密的密码进行一次加密 二次加密 返回true是成功
它的实现类BCryptPasswordEncoder,密码解析器

  • 自定义登录逻辑
    需要使用UserDetailsService对象,这个对象就是定义逻辑的,PasswordEncoder密码解析器
    但是在自定义之前PasswordEncoder必须有这个实例,
    来开始演示, 首先在一个配置类中实例化出一个PasswordEncoder对象
    SpringSecurity安全框架的笔记_第2张图片
    开始编写用户登录认证逻辑过程 需要用UserDetailsService对象
    SpringSecurity安全框架的笔记_第3张图片
    第三个重要对象就是配置WebSecurityConfigurerAdapte对象来进行权限控制,一些小设置
    SpringSecurity安全框架的笔记_第4张图片
    以上就是比较重要的三个点,
    下面就是在配置类中常见的设置
    SpringSecurity安全框架的笔记_第5张图片
    anyRequest()表示匹配到所有请求,antMatcher()指定参数匹配
    SpringSecurity安全框架的笔记_第6张图片
    对于匹配到到的url可以进行控制
    permitAll() 放行
    authenticated()认证
    denyAll()拒绝访问
    rememberMe()被记得我的用户允许访问
    fullyAuthenticated() 不是记得我才可以访问
  • Spring Security 中 Remember Me 为“记住我”功能,用户只需要在登录时添加 remember-me 复选框,取值为 true。Spring Security 会自动把用户信息存储到数据源中,以后就可以不登录进行访问。
    SpringSecurity安全框架的笔记_第7张图片
    SpringSecurity安全框架的笔记_第8张图片
    SpringSecurity安全框架的笔记_第9张图片
    添加选择框
    在这里插入图片描述
    退出登录
    SpringSecurity安全框架的笔记_第10张图片

你可能感兴趣的:(框架)