SpringSecurity安全框架
简介
Spring Security是针对Spring项目的安全框架,也是SpringBoot底层安全模块默认的技术选型,他可以实现强大的web安全控制,对于安全控制,我们仅需要引入Spring-boot-starter-security模块,进行少量的配置,即可实现强大的安全管理!
需要记住的几个类跟注解:
- WebSecurityConfigrerAdapter:自定义Security策略
- AuthenticationManagerBuilder:自定义认证策略
- @EnableWebSecurity:开启WebSecurity模式,@Enablexxx开启某个功能
- SpringSecurity的俩个主要目标是认证和授权(访问控制)。
认证(Authertication)
授权(Authorization)
这个概念是通用的,而不是只在SpringSecurity中存在
一个项目囊括SpringSecurity知识
首先导入静态资源页面
然后我们写个Controller使我们在点击的时候可以进行跳转页面
然后我们写一个springSecurity的配置 继承WebSecurityConfigurerAdapter这个类 然后重写里面的方法实现我们想要的效果
然后我们在重写一个这个类的另一个认证的方法给授权添加账号和密码 ,上面的是授权的方法。
接下来我们就该在前端页面优化页面,我们要使页面随着用户的权限而展示,而不是全部都展示,当前用户没权限的地方不展示。
首先我们要导入ThyMeleaf整合SpringSecurit的依赖
<!-- 整合SpringSecurity和thymeleaf-->
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
然后再前端页面导入相应的命名空间
xmlns:sec="http://www.thymeleaf.org/extras/spring-security
然后开始进行操作
然后我们运行起来可以看一下
总结
因为到了SpringBoot之后我们几乎脱离了一堆繁琐的配置,像我们这个安全认证,其实就是调用了几个方法 ,这样的效果是比以前那种配拦截器、过滤器快n倍的速度,简单理解就是我们继承了一个接口然后使用注解配置了一下,然后里面重写俩个方法 一个授权方法,一个认证方法,再授权里面设置各种配置,认证只需要设置账号密码并且给每个账号设置对应的权限,前端整合的时候 就只需要配置几个标签判断一下权限即可 ,总共就调用俩个标签,再判断的时候用了sec:authorize=,在取值的时候用了sec:authentication=。
接下来放上gitee码云,代码有兴趣的可以下载下来运行理解一下
https://gitee.com/Qiyuxs/spring-security