1. 简介:
Spring Security是针对Spring项目的安全框架,它可以实现强大的Web安全控制。对于安全控制,我们只需要引入Spring-Security依赖,进行少量配置就可实现强大的安全机制。
2.在创建项目的时候分别导入Security、Web、Thymeleaf的相关配置。
3.引入我们所需的Controller和html
4.先进行登录:访问localhost:8080/。这个时候会直接访问我们的welcome.html,因为Controller里面已经映射了。
我们会发现它会让我们先登录,这个时候看控制台:
会有一串密码,我们用户名默认为User。那么我们试试登录。
发现登录成功!
我们也可以通过properties对我们的用户名和密码进行修改:
接下来我们进行权限的设置。
继承WebSecurityConfigurerAdapter
重写他的configure类,注意要用的是Http这个是制定授权规则的。
我们制定规则,若是访问/目录下那么都可以,若是其他目录必须有对应的权限,写完之后重启测试。
发现点击对应的权限会报错,这是因为没有权限是不能访问的。
接下来我们让若是没有权限就让他到登录界面
http.formLogin().usernameParameter("user").passwordParameter("pwd").loginPage("/userlogin");
也可以设置账号密码和登录地址。
也可以看起注销功能并且让他跳转到/目录下,也可以开启记住我功能。
接下来看看记住我功能。
若是写他记住我功能后
登录页面有个记住我,点击后关闭页面,重新登录会找到你的cookie,相当于权限依然在不需要再次登录。
、
接下来看看认证规则,它相当于给我们设置密码并且设置权限,我们根据不同的账号密码就可以拥有不同的权限去访问页面。
注意:他还需要
public class MyPasswordEncoder implements PasswordEncoder
对密码进行编译。
若是我们想让不同权限人进入网页后,显示他相应权限的武林秘籍,那么要怎么做呢?
首先导入
xmlns:sec="http://www.thymeleaf.org/extras/spring-security
然后根据
<div sec:authorize="!isAuthenticated()"></div>
判断是否为登录状态,进行div内容的显示与否
根据<span sec:authentication="principal.authorities"></span>显示权限
根据<span sec:authentication="name"></span>显示用户名
<div sec:authorize="hasRole('VIP1')"></div>
根据用户权限的所有来进行显示与否。
那么整合至此结束