04 2023 档案

摘要:我们也可以在配置类中使用使用配置的方式对资源进行权限控制 阅读全文
posted @ 2023-04-24 17:07 帕拉利斯 阅读(13) 评论(0) 推荐(0) 编辑
摘要:我们前面都是使用@PreAuthorize注解,然后在在其中使用的是hasAuthority方法进行校验。SpringSecurity还为我们提供了其它方法例如:hasAnyAuthority,hasRole,hasAnyRole等。 ​ 这里我们先不急着去介绍这些方法,我们先去理解hasAutho 阅读全文
posted @ 2023-04-24 17:01 帕拉利斯 阅读(79) 评论(0) 推荐(0) 编辑
摘要:​ 浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略,否则就是跨域的HTTP请求,默认情况下是被禁止的。 同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。 ​ 前后端分离项目,前端项目和后端项目一般都不是同源的,所以肯定会存在跨域请 阅读全文
posted @ 2023-04-24 16:45 帕拉利斯 阅读(15) 评论(0) 推荐(0) 编辑
摘要:​ 我们希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。要实现这个功能我们需要知道SpringSecurity的异常处理机制。 ​ 在SpringSecurity中,如果我们在认证或者授权的过程中出现了异常会被ExceptionT 阅读全文
posted @ 2023-04-24 16:32 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:​ 我们只需要根据用户id去查询到其所对应的权限信息即可 ​ 所以我们可以先定义个mapper,其中提供一个方法可以根据userid查询权限信息 创建对应的mapper文件,定义对应的sql语句 在application.yml中配置mapperXML文件的位置 ​ 然后我们可以在UserDetai 阅读全文
posted @ 2023-04-24 16:23 帕拉利斯 阅读(24) 评论(0) 推荐(0) 编辑
摘要:RBAC权限模型(Role-Based Access Control)即:基于角色的权限控制。这是目前最常被开发者使用也是相对易用、通用权限模型 准备工作 创建数据库表 CREATE TABLE `sys_menu` ( `id` bigint(20) NOT NULL AUTO_INCREMENT 阅读全文
posted @ 2023-04-24 16:16 帕拉利斯 阅读(28) 评论(0) 推荐(0) 编辑
摘要:数据库校验用户 ​ 从之前的分析我们可以知道,我们可以自定义一个UserDetailsService,让SpringSecurity使用我们的UserDetailsService。我们自己的UserDetailsService可以从数据库中查询用户名和密码 数据库 CREATE TABLE `sys 阅读全文
posted @ 2023-04-23 17:05 帕拉利斯 阅读(21) 评论(0) 推荐(0) 编辑
摘要:限制访问资源所需权限 ​ SpringSecurity为我们提供了基于注解的权限控制方案,这也是我们项目中主要采用的方式。我们可以使用注解去指定访问对应的资源所需的权限。 ​ 但是要使用它我们需要先开启相关配置 我们前面在写UserDetailsServiceImpl的时候说过,在查询出用户后还要获 阅读全文
posted @ 2023-04-23 16:20 帕拉利斯 阅读(18) 评论(0) 推荐(0) 编辑
摘要:权限系统的作用​ 例如一个学校图书馆的管理系统,如果是普通学生登录就能看到借书还书相关的功能,不可能让他看到并且去使用添加书籍信息,删除书籍信息等功能。但是如果是一个图书馆管理员的账号登录了,应该就能看到并使用添加书籍信息,删除书籍信息等功能。 ​ 总结起来就是不同的用户可以使用不同的功能。这就是权 阅读全文
posted @ 2023-04-23 16:17 帕拉利斯 阅读(54) 评论(0) 推荐(0) 编辑
摘要:​ 我们需要自定义一个过滤器,这个过滤器会去获取请求头中的token,对token进行解析取出其中的userid。 ​ 使用userid去redis中获取对应的LoginUser对象。 ​ 然后封装Authentication对象存入SecurityContextHolder 退出登陆 ​ 我们只需 阅读全文
posted @ 2023-04-23 16:17 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑
摘要:实际项目中我们不会把密码明文存储在数据库中。 ​ 默认使用的PasswordEncoder要求数据库中的密码格式为:{id}password 。它会根据id去判断密码的加密方式。但是我们一般不会采用这种方式。所以就需要替换PasswordEncoder。 ​ 我们一般使用SpringSecurity 阅读全文
posted @ 2023-04-23 16:13 帕拉利斯 阅读(42) 评论(0) 推荐(0) 编辑
摘要:1导入依赖 <!--redis依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <! 阅读全文
posted @ 2023-04-22 16:14 帕拉利斯 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。 AuthenticationManager接口:定义了认证Authentication的方法 UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法 阅读全文
posted @ 2023-04-22 16:05 帕拉利斯 阅读(28) 评论(0) 推荐(0) 编辑
摘要:登录校验流程 SpringSecurity完整流程 ​ SpringSecurity的原理其实就是一个过滤器链,内部包含了提供各种功能的过滤器。这里我们可以看看入门案例中的过滤器。 ​ 图中只展示了核心过滤器,其它的非核心过滤器并没有在图中展示。 UsernamePasswordAuthentica 阅读全文
posted @ 2023-04-22 16:01 帕拉利斯 阅读(56) 评论(0) 推荐(0) 编辑
摘要:​我们先要搭建一个简单的SpringBoot工程 导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.0< 阅读全文
posted @ 2023-04-22 15:43 帕拉利斯 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Spring Security 1,是Spring家族中的一个安全管理框架 相比与另外一个安全框架Shiro 它提供了更丰富的功能 市区资源也比Shiro丰富 2,一般来说中大小的项目都使用SpringSecurity来做安全框架 小项目有Shiro的比较多 因为相比 与SpringSecurity 阅读全文
posted @ 2023-04-22 15:37 帕拉利斯 阅读(27) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示