基于SpringBoot开发一套完整的项目(六)准备工作
准备一些关于团队合作或项目管理的例子 #生活知识# #生活指南# #职场建议# #面试攻略#
集成Spring Security
说到程序的权限管理时,人们往往想到“角色”这一概念。例如, 一个用户以关联了“管理员”角色的账号登录系统,那这个用户就可以做管理员能做的所有事情。这种权限控制方法就称为基于角色的访问控制。
权限概念
权限是对资源的一种保护访问.用户要访问A资源前提是用户必须有A资源的访问权限.
角色概念
我们不会直接把权限赋予给用户,而是通过角色来赋予给用户,因为用户拥有某一种权限是因为用户扮演着某一种角色。
小王 是 个经理,他管理着B公司,他拥有1.2.3的权限。实际不是小王有这个权限,而是因为小王是经理。因为经理拥有1.2.3 权限,所以在权限划分上,我们会把权限赋予给某一个角色,而不是赋予给个人。这样带来的好处是如果公司换了经理,那 么只要再聘用一个人来做经理就可以了,而不会出现因为权 限在个人手里导致权限被带走的情况,
分组概念
只有角色是不够的,B公司发现小王有财务问题成立了一个财务调查小组,然后我们赋予了这个小组财务调查员的角色(注意 是赋予小组这个角色). 这样这个小组所有人员都有财务调查的资格。而不需要给小组的每个人都赋予这个角色,分组概念 也适合部门,因为任何一个部门在公司里或者社会上都在扮演着一个泛的角色。
判断用户有没有访问资源的权限就看这个用户有没有访问这个资源的权限,也就是说分组,分部门,分角色最终是以权限来实 现对资源的访问控制
在Java 平台,有很多现成的现代权限管理框架可供选择,
Apache Shiro 和SpringSecurity
一个是以简洁好用而被业界广泛应用,而另一个则以功能强大而著称。
Spring Security 概述
在应用程序安全性的两个主要领域是 : 认证与授权。
( 1 )认证:认证是建立主体的过程。主体通常是指可以在应用程序中执行操作
的用户、设备或其他系统。
( 2 )授权:或称为访问控制,授权是指决定是否允许主体在应用程序中执
行操作。
在认证级别, Spring Security 支持各种各样的认证模型,也包括自己的一组认证功能:
有三个主要领域。
对Web 请求进行授权。
授权某个方法是否可以被调用。
授权访问单个领域对象实例。
针对Web 方面的开发, Spring Security 提供了如下高级功能:
1. Remember-Me认证:指网站能够记住身份之间的会话,通常是通过发送cookie 到浏览
器, cookie 在未来会话中被检测到,并导致自动登录发生。
2. 使用HTTPS :可以使用< intercept-url >上的requires-channel 属性直接支持这些URL 采用HTTPS 协议。
3. 会话管理: 提供了诸如检测超时、控制并发会话、防御会话固定攻击等方面的内容。
Spring Security 与Spring Boot 集成
另外 Thymeleaf 提供了Thymeleaf 与Spring Security 集成模块需要手动添加这个依赖。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity4</artifactId> </dependency>
后台代码
创建config包,然后创建创建SecurityConfig配置安全配置类
@EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter{ /** * 自定义配置 */ protected void configure(HttpSecurity httpSecurity) throws Exception{ httpSecurity.authorizeRequests() .antMatchers("/css/**","/js/**","/fonts/**","/index") .permitAll()//都可以访问 .antMatchers("user/**").hasRole("ADMIN")//需要管理员权限
网址:基于SpringBoot开发一套完整的项目(六)准备工作 https://www.yuejiaxmz.com/news/view/195316
相关内容
【网站项目】基于springboot的生活信息分享平台Springboot基于springboot的校园生活工具租赁系统cftei
基于springboot的校园二手交易平台 毕业设计开题报告
Springboot基于SpringBoot的宠物门诊系统6f8jy
【开题报告】基于Springboot+vue智能家居项目管理系统(程序+源码+论文) 计算机毕业设计
基于SpringBoot+Vue前后端分离的在线教育平台项目
JAVA计算机毕业设计基于SpringBoot的个人健康管理系统(附源码+springboot+开题+论文)
基于springboot的疫情社区生活服务系统
【开题报告】基于SpringBoot的美食制作学习网站的设计设计与实现
【网站项目】基于springboot的二手物品交易平台设计和实现