在web开发中,安全很重要。
SpringSecurity和Shiro很像,除了类不一样,名字不一样。它们两个主要做的就是认证和授权。
在官网,https://spring.io/projects/spring-security 我们可以看到
“Spring Security is a powerful and highly customizable authentication and access-control framework.”
翻译过来就是Spring Security是一个功能强大、高度可定制的身份验证和访问控制框架。
我们使用拦截器和过滤器也能够实现身份验证和访问控制,但是这要求我们写大量的代码。
我们要使用SpringSecurity,只需要导入spring-boot-starter-security模块,进行少量的配置就可以了。
学习SpringSecurity需要记住几个类:
WebSecurityConfigurerAdapter:自定义Security策略
AuthenticationManagerBuilder:自定义认证策略
@EnableWebSecurity:开启WebSecurity模式
SpringSecurity的主要目的是认证和授权。
上面就是模版,下面我们实现一个功能,
我们首页可以进,但是点击level3下的2页下会403,(注:403错误是一种在网站访问过程中,常见的错误提示,表示资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。)
我们让没有权限默认到登录页面
只需要加一行代码http.formLogin();
还是点击level3下的2页,
我们点开方法formLogin()
上面是授权,下面来看认证
为什么,密码没有加密
开启注销
如何做到,给登录的用户只展示它所拥有权限的模块呢?
比如下图,一个用户只有Level1的权限,那么只给他展示Level1模块就好。
我们需要导入thymeleaf和security的整合包
开启记住我功能,
底层就是cookie
默认保存两周
首页定制: