服务端-认证授权安全框架
文章平均质量分 81
虫儿飞..
这个作者很懒,什么都没留下…
展开
-
SpringSecurity(前后端分离版)[7]-自定义权限校验方法
在SPEL表达式中使用 @ex相当于获取容器中bean的名字未ex的对象。然后再调用这个对象的hasAuthority方法。我们也可以定义自己的权限校验方法,在@PreAuthorize注解中使用我们的方法。//判断用户权限集合中是否存在authority。//获取当前用户的权限。原创 2022-12-18 13:20:49 · 196 阅读 · 0 评论 -
SpringSecurity(前后端分离版)[6]-在配置类中进行权限校验
这里我们先不急着去介绍这些方法,我们先去理解hasAuthority的原理,然后再去学习其他方法你就更容易理解,而不是死记硬背区别。并且我们也可以选择定义校验方法,实现我们自己的校验逻辑。hasAuthority方法实际是执行到了SecurityExpressionRoot的hasAuthority,大家只要断点调试既可知道它内部的校验原理。然后判断我们存入的方法参数数据在权限列表中。hasRole要求有对应的角色才可以访问,但是它内部会把我们传入的参数拼接上。所以这种情况下要用用户对应的权限也要有。原创 2022-12-18 13:19:12 · 260 阅读 · 0 评论 -
SpringSecurity(前后端分离版)[6]-跨域
浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略,否则就是跨域的HTTP请求,默认情况下是被禁止的。由于我们的资源都会收到SpringSecurity的保护,所以想要跨域访问还要让SpringSecurity运行跨域访问。// 除上面外的所有请求全部需要鉴权认证。// 设置允许的header属性。// 对于登录接口 允许匿名访问。// 设置允许跨域请求的域名。// 是否允许cookie。// 设置允许的请求方式。// 设置允许跨域的路径。原创 2022-12-18 13:16:46 · 628 阅读 · 0 评论 -
SpringSecurity(前后端分离版)[4]-自定义失败处理
我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。要实现这个功能我们需要知道SpringSecurity的异常处理机制。在SpringSecurity中,如果我们在认证或者授权的过程中出现了异常会被ExceptionTranslationFilter捕获到。在ExceptionTranslationFilter中会去判断是认证失败还是授权失败出现的异常。原创 2022-12-18 13:16:04 · 498 阅读 · 0 评论 -
SpringSecurity(前后端分离版)[3]-授权
例如一个学校图书馆的管理系统,如果是普通学生登录就能看到借书还书相关的功能,不可能让他看到并且去使用添加书籍信息,删除书籍信息等功能。SpringSecurity为我们提供了基于注解的权限控制方案,这也是我们项目中主要采用的方式。我们前面在写UserDetailsServiceImpl的时候说过,在查询出用户后还要获取对应的权限信息,封装到UserDetails中返回。`user_type` char(1) NOT NULL DEFAULT '1' COMMENT '用户类型(0管理员,1普通用户)',原创 2022-12-18 13:15:13 · 137 阅读 · 0 评论 -
SpringSecurity(前后端分离版)[2]-认证
从之前的分析我们可以知道,我们可以自定义一个UserDetailsService,让SpringSecurity使用我们的UserDetailsService。`user_type` CHAR(1) NOT NULL DEFAULT '1' COMMENT '用户类型(0管理员,1普通用户)',`del_flag` INT(11) DEFAULT '0' COMMENT '删除标志(0代表未删除,1代表已删除)',SpringSecurity的原理其实就是一个过滤器链,内部包含了提供各种功能的过滤器。原创 2022-12-18 13:12:28 · 293 阅读 · 0 评论 -
SpringSecurity(前后端分离版)[1]- 快速入门
引入依赖后我们在尝试去访问之前的接口就会自动跳转到一个SpringSecurity的默认登陆页面,默认用户名是user,密码会输出在控制台。必须登陆之后才能对接口进行访问。原创 2022-12-18 13:03:18 · 97 阅读 · 0 评论 -
SpringSecurity[6]-Thymeleaf中Spring Security的使用/退出登录/Spring Security中CSRF
上一篇:SpringSecurity[5]-基于表达式的访问控制/基于注解的访问控制/Remember Me功能实现。原创 2022-12-14 17:08:21 · 704 阅读 · 0 评论 -
SpringSecurity[5]-基于表达式的访问控制/基于注解的访问控制/Remember Me功能实现
上一篇:SpringSecurity[4]-访问控制url匹配/内置访问控制方法介绍/角色权限判断。原创 2022-12-14 17:01:37 · 358 阅读 · 0 评论 -
SpringSecurity[4]-访问控制url匹配/内置访问控制方法介绍/角色权限判断
Spring Security匹配了URL后调用了permitAll()表示不需要认证,随意访问。在Spring Security中提供了多种内置控制。permitAll()表示所匹配的URL任何人都允许访问。authenticated()表示所匹配的URL都需要被认证才能访问。anonymous()表示可以匿名访问匹配的URL。原创 2022-12-14 16:56:21 · 1382 阅读 · 0 评论 -
SpringSecurity[3]-自定义登录逻辑,自定义登录页面,以及认证过程的其他配置
当进行自定义登录逻辑时需要用到之前讲解的UserDetailsService和PasswordEncoder。但是Spring Security要求:当进行自定义登录逻辑时容器内必须有PasswordEncoder实例。所以不能直接new对象。1.编写配置类新建类com.msb.config.SecurityConfig 编写下面内容@Bean}}2.自定义逻辑在Spring Security中实现UserDetailService就表示为用户详情服务。在这个类中编写用户认证逻辑。原创 2022-12-14 16:49:55 · 560 阅读 · 0 评论 -
SpringSecurity[2]-UserDetailsService详解以及PasswordEncoder密码解析器详解
前一篇SpringSecurity[1]-SpringSecurity简介以及创建Spring Security第一个项目。原创 2022-12-14 16:45:02 · 432 阅读 · 0 评论 -
SpringSecurity[1]-SpringSecurity简介以及创建Spring Security第一个项目
1.概括Spring Security是一个高度自定义的安全框架。利用Spring IoC/DI和AOP功能,为系统提供了声明式安全访问控制功能,减少了为系统安全而编写大量重复代码的工作。使用Spring Secruity的原因有很多,但大部分都是发现了javaEE的Servlet规范或EJB规范中的安全功能缺乏典型企业应用场景。同时认识到他们在WAR或EAR级别无法移植。因此如果你更换服务器环境,还有大量工作去重新配置你的应用程序。原创 2022-12-14 16:41:04 · 329 阅读 · 0 评论