Springboot之整合Security

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>

根据用户权限的所有来进行显示与否。

那么整合至此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值