一、登录&认证&授权&权限控制&注销&记住我&定制登录页

安全部分内容主要以演示功能为主,实际项目中用户信息和权限都存在数据库中。

1.引入依赖

     <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>

2.编写SpringSecurity的配置类

  1. 控制请求的访问权限configure(HttpSecurity http);
  2. 定义认证规则configure(AuthenticationManagerBuilder auth);
  3. 开启自动配置的登陆功能configure(HttpSecurity http);
    1. 默认post形式的 /login代表处理登陆,get形式的/login代表进入登录页,/login?error就是登录失败,/login?logout代表注销
    2. 一但定制loginPage参数,那么 loginPage的post请求就是登陆请求,get请求就是进入登录页,定制的路径后加?error就是登录失败,定制的路径后加?logout就是注销
  4. 注销http.logout();
    1. 访问 /logout 表示用户注销,清空session
    2. 注销成功会返回 /login?logout 页面;
  5. 记住我http.rememberMe();
    1. 登陆成功以后,将cookie发给浏览器保存,以后访问页面带上这个cookie,只要通过检查就可以免登录
    2. 点击注销会删除cookie
//此注解中包含@Configuration
@EnableWebSecurity//开启安全模块
public class MySecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {//super.configure(http);//定制请求的授权规则http.authorizeRequests().antMatchers("/").permitAll().antMatchers("/level1/**").hasRole("VIP1").antMatchers("/level2/**").hasRole("VIP2").antMatchers("/level3/**").hasRole("VIP3");//开启自动配置的登陆功能,效果,如果没有登陆,没有权限就会来到登陆页面//可以指定user和pwd为页面传的用户名密码的参数名,默认是username和password//loginPage--自定义登录请求http.formLogin().usernameParameter("user").passwordParameter("pwd").loginPage("/userlogin");//开启自动配置的注销功能。http.logout().logoutSuccessUrl("/");//注销成功以后来到首页///开启记住我功能//可以指定页面发送的参数name,默认为remebermehttp.rememberMe().rememberMeParameter("remeber");}//定义认证规则(用户名、密码、角色)@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {//super.configure(auth);auth.inMemoryAuthentication().withUser("zhangsan").password("123456").roles("VIP1","VIP2").and().withUser("lisi").password("123456").roles("VIP2","VIP3").and().withUser("wangwu").password("123456").roles("VIP1","VIP3");}
}

3.页面获取登录信息
引入依赖

     <dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-springsecurity4</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

名称空间thymeleaf-extras-springsecurity4

<html xmlns:th="http://www.thymeleaf.org"xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">

标签sec:authentication

<div sec:authorize="isAuthenticated()"><h2><span sec:authentication="name"></span>,您好,您的角色有:<span sec:authentication="principal.authorities"></span></h2><form th:action="@{/logout}" method="post"><input type="submit" value="注销"/></form>
</div>

分权限显示hasRole()

<div sec:authorize="hasRole('VIP1')"><h3>普通武功秘籍</h3><ul><li><a th:href="@{/level1/1}">罗汉拳</a></li><li><a th:href="@{/level1/2}">武当长拳</a></li><li><a th:href="@{/level1/3}">全真剑法</a></li></ul>
</div><div sec:authorize="hasRole('VIP2')"><h3>高级武功秘籍</h3><ul><li><a th:href="@{/level2/1}">太极拳</a></li><li><a th:href="@{/level2/2}">七伤拳</a></li><li><a th:href="@{/level2/3}">梯云纵</a></li></ul>
</div><div sec:authorize="hasRole('VIP3')"><h3>绝世武功秘籍</h3><ul><li><a th:href="@{/level3/1}">葵花宝典</a></li><li><a th:href="@{/level3/2}">龟派气功</a></li><li><a th:href="@{/level3/3}">独孤九剑</a></li></ul>
</div>

SpringBootSecurity安全相关相关推荐

  1. 重点解读《数据安全法》,做数据安全相关工作的必看

    近几年<中华人民共和国网络安全法>.<数据安全法>.<个人信息保护法>等国家法律法规的公开,标志着网络安全上升到国家层面,事关国家安全与国计民生. 2021年6月1 ...

  2. SpringBoot-Security 具体案例、 实现安全框架、权限控制、aop切入

    SpringBoot-Security 具体案例. 实现安全框架.权限控制.aop切入 SpringBoot-Security介绍 Security 官方序言 ​ 安全是一个不断变化的目标,追求一个全 ...

  3. Linux基础优化方法(二)———系统安全相关优化:防火墙和selinux

    Linux基础优化方法(二)---系统安全相关优化:防火墙和selinux 一.系统防火墙服务优化 1.CentOS 6 ①.查看防火墙服务状态 ②.临时关闭防火墙服务 ③.永久关闭防火墙服务 2.C ...

  4. 使用 MaxCompute(原ODPS) java sdk 运行安全相关命令

    摘要: 使用 odps console 的同学,可能都使用过 odps 安全相关的命令. 转自zhenhong 使用 MaxCompute console 的同学,可能都使用过 odps 安全相关的命 ...

  5. 展示面-网络安全相关学习总结

    展示面-网络安全相关学习总结 P.S.做技能的整理和展示,求职中,希望同修们也能有所收获: 做时间的朋友.

  6. springbootSecurity的使用

    springbootSecurity主要负责的是安全,里面自定义了拦截器和过滤器,使用springbootsecurity需要导入依赖: <!--导入security--><depe ...

  7. 阿里巴巴在ITU-T成功立项数据安全相关标准

    3月23日,在瑞士日内瓦举办的ITU-T(国际电信联盟通信标准化组织) SG17安全研究组全体会议上,由中国代表团报送,阿里巴巴主导的数据安全相关国际标准项目成功立项.ITU-T是联合国的标准化组织, ...

  8. 系统安全相关知识学习

    系统安全相关知识学习 文章目录 系统安全相关知识学习 1. 系统安全是什么 1.1. 机密性 1.2. 完整性 1.3. 可用性 2. 如何解决安全问题 2.1. 身份识别和认证 2.2. 授权 2. ...

  9. 群体智能的未来趋势:网络安全领域、网络安全相关领域及其拓展

    3.4(研究学习内容4):群体智能的未来趋势 3.4.1网络安全领域 "社会5.0"是智能社会.智能城市和信息革命的进一步发展,为了实现这一目标,有必要通过复杂性分析认识这一最先进 ...

最新文章

  1. Ubuntu 16.04~ORB SLAM2~Kinect v1
  2. Bootstrap响应式与自适应区别
  3. 【Git】Git 标签使用 ( 查询哈希码 | 创建标签 git tag v1.0 | 查询标签 git tag | 查询标签信息 git show v1.0 | 创建标签并指定说明 | 删除标签 )
  4. python自动投递简历_python模拟登录前程无忧,发送简历
  5. node.js初入手
  6. mysql5.5查询字段语句_mysql查询同一个字段下,不同内容的语句
  7. 终于换了杀毒工具(NOD32教育网升级)
  8. 洗点,现金1100G
  9. Google 前员工:秘密研究中国搜索项目或会引发离职潮!
  10. java字符串拼接还是格式化_Java中三种字符串的拼接(++ , String.format , StringBuilder.a...
  11. ICA(独立成分分析)在信号盲源分离中的应用
  12. java 找不到符号 con_Java,找不到符号:奇怪
  13. 收益率-计算方法介绍
  14. IBM x3750 M4之IMM管理
  15. 【MATLAB教程案例12】基于GA遗传优化算法的函数极值计算matlab仿真及其他应用
  16. c语言 的意思啊,c语言中!1是什么意思啊
  17. 问题 K: 古罗马数字
  18. idea springboot项目修改代码后刷新启动,不用重新启动
  19. 如何规划自己的职业生涯
  20. 使用python在雅虎财经提取数据的创捷有效边界

热门文章

  1. 计划订单投放成生产任务单时修改生产任务单编号
  2. 全文检索学习之ElasticSearch学习笔记
  3. 虚拟机安装Ubuntu18.04,vmtools,配置语言,要是再搞不定你打死我!!!
  4. 中国电信欢go建立话费话费异常预警(国际)
  5. fan怎么写 jin_jin字怎么写
  6. WiFi 6的核心技术
  7. 上班防摸鱼插件(知乎页面)
  8. 相同和相等的区别。。。
  9. 2023,开启「线控转向」元年
  10. gradle(Project)