栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【权限认证】第一天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【权限认证】第一天

文章目录
  • 一、今日需求?
  • 二、认证授权
    • 1.什么是认证?
    • 2.什么是授权?
    • 3.RBAC:基于角色的权限控制
    • 4.登录流程
    • 5.登录检查
    • 6.授权检查
  • 三.SpringSecurity
    • 四.SpringSecurity入门案例
      • CSRF检查
    • 五.自定义UserDetailService
    • 六.配置passwordEncoder
  • 总结


一、今日需求?

1)认证授权的概念?
什么是认证,什么是授权?
2)认证授权代码阅读
3)SpringSecurity框架
4)SpringSecurity入门案例(重要)
5)SpringSecurity认证流程(重要)
6)SpringSecurity自定义UserDetailService(重要)
7)SpringSecurity授权流程与授权方式【配置类,注解】(重要)
8)自定义认证结果处理和授权结果处理
9)记住我

二、认证授权 1.什么是认证?

就是对用户身份的确认!

2.什么是授权?

1)授权的概念:
2)如何授权?
必须要知道:用户访问的资源需要什么权限?
当前登录用户拥有哪些权限?

3)验证逻辑:
①首先判断用户当前请求访问的资源是否需要权限校验?因为有些资源是不需要权限的;
②如果需要权限校验,就要获取当前访问的资源需要什么权限,再获取当前用户拥有的权限,再将两者作比较;
4)授予权限:
当用户登录成功时,需要联表查询他拥有的权限列表,设置到当前登录用户对象身上,一起存储到会话中【session,redis,jwt等】

3.RBAC:基于角色的权限控制


权限控制,在每个系统中基本都会有这五张表,如果要展示权限菜单,就要多一张menu表;

4.登录流程

5.登录检查

6.授权检查

三.SpringSecurity

任何一个软件系统里都需要认证,认证检查,权限检查的业务;
同类型产品:Apache Shiro

四.SpringSecurity入门案例

1.依赖


2.必须提供一个SpringSecurity的核心配置类,要求继承WebSecurityConfigureAdapter类;
要求:重写configure方法,参数类型为Http那个

要在这个方法中配置:
要放行哪些请求:
表单登录配置
退出配置
哪些请求要校验什么权限:
哪些请求要登录才能访问

这个是放行登录请求,形参是可变参数,可以写多个

配置其他所有资源都需要登录后才能访问; .anyRequest().authenticated(); 这句话必须放在最后;

CSRF检查

面试题:当总经理的token被偷了,别人拿到这个token,用postman模拟总经理的请求,然后用总经理的高权限账户对公司数据进行破坏;如何防止这个问题?
答:就可以使用CSRF检查,CSRF检查在检查账户登录时,不仅仅只校验token,还会校验ip地址,机器码,如果你的机器码,ip地址也更改了,CSRF就认为你的账户被盗了,就不会让你登录;别人拿到你的token也没用;

而在springsecurity的配置类中,可以使用.csrf().disable();关闭csrf检查,这样开发阶段效率更高,等到上线的时候,我们可以把csrf开启,提高安全性;
每点一次and()就代表这是一组;

五.自定义UserDetailService


这里的new User,是Security自己的User类;

六.配置passwordEncoder

encode方法是加密,matches方法是匹配输入的密码跟加密后的字符串,判断密码是否正确;
我们可以实现PasswordEncoder接口,自定义加密与匹配规则;


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号