主要内容

  1. Spring Security 简介

  2. 第一个Spring Security项目

  3. UserDetailsService详解

  4. PasswordEncoder密码解析器详解

  5. 自定义登录逻辑

  6. 自定义登录页面

  7. 认证过程其他常用配置

  8. 访问控制url匹配

  9. 内置访问控制方法介绍

10.角色权限判断

11.自定义403处理方案

12.基于表达式的访问控制

13.基于注解的访问控制

14.RememberMe功能实现

15.Thymeleaf中Spring Security使用

16.退出登录

17.Spring Security 中CSRF

学习目标

知识点 要求
Spring Security 简介 掌握
第一个Spring Security项目 掌握
UserDetailsService详解 掌握
PasswordEncoder密码解析器详解 掌握
自定义登录逻辑 掌握
自定义登录页面 掌握
认证过程其他常用配置 掌握
访问控制url匹配 掌握
内置访问控制方法介绍 掌握
角色权限判断 掌握
自定义403处理方案 掌握
基于表达式的访问控制 掌握
基于注解的访问控制 掌握
Remember Me 功能实现 掌握
Thymeleaf中Spring Security使用 掌握
退出登录 掌握
CSRF 掌握

一、Spring Security简介

1.概括

Spring Security是一个高度自定义的安全框架。利用Spring IoC/DI和AOP功能,为系统提供了声明式安全访问控制功能,减少了为系统安全而编写大量重复代码的工作。

使用Spring Secruity的原因有很多,但大部分都是发现了javaEE的Servlet规范或EJB规范中的安全功能缺乏典型企业应用场景。同时认识到他们在WAR或EAR级别无法移植。因此如果你更换服务器环境,还有大量工作去重新配置你的应用程序。使用Spring Security 解决了这些问题,也为你提供许多其他有用的、可定制的安全功能。

正如你可能知道的两个应用程序的两个主要区域是“认证”和“授权”(或者访问控制)。这两点也是Spring Security重要核心功能。“认证”,是建立一个他声明的主体的过程(一个“主体”一般是指用户,设备或一些可以在你的应用程序中执行动作的其他系统),通俗点说就是系统认为用户是否能登录。“授权”指确定一个主体是否允许在你的应用程序执行一个动作的过程。通俗点讲就是系统判断用户是否有权限去做某些事情。

2.历史

Spring Security 以“The Acegi Secutity System for Spring” 的名字始于2003年年底。其前身为acegi项目。起因是Spring开发者邮件列表中一个问题,有人提问是否考虑提供一个基于Spring的安全实现。限制于时间问题,开发出了一个简单的安全实现,但是并没有深入研究。几周后,Spring社区中其他成员同样询问了安全问题,代码提供给了这些人。2004年1月份已经有20人左右使用这个项目。随着更多人的加入,在2004年3月左右在sourceforge中建立了一个项目。在最开始并没有认证模块,所有的认证功能都是依赖容器完成的,而acegi则注重授权。但是随着更多人的使用,基于容器的认证就显现出了不足。acegi中也加入了认证功能。大约1年后acegi成为Spring子项目。

在2006年5月发布了acegi 1.0.0版本。2007年底acegi更名为Spring Security。

二、第一个Spring Security项目

1.导入依赖

Spring Security已经被Spring boot进行集成,使用时直接引入启动器即可。

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

2.访问页面

导入spring-boot-starter-security启动器后,Spring Security已经生效,默认拦截全部请求,如果用户没有登录,跳转到内置登录页面。

在项目中新建login.html页面后

在浏览器输入:http://localhost:8080/login.html后会显示下面页面

默认的username为user,password打印在控制台中。当然了,每个人显示的肯定和我的不一样。

在浏览器中输入账号和密码后会显示login.html页面内容。

SpringSecurity[1]-SpringSecurity简介以及创建Spring Security第一个项目相关推荐

  1. pycharm创建我的第一个项目

    使用pycharm创建我的第一个项目 1 . Create New Project 2 . pycharm设置项目的保存位置(创建的是一个空项目). 3 . 添加python文件,右击项目文件夹 -- ...

  2. SpringSecurity系列文章 (一)Spring Security 认知

    在文章开篇先说说为何使用Spring Security,在新的公司中现在认证授权服务是通过Spring Security auth2进行认证的,原本没用过这个啊,只知道apche shiro 现在还有 ...

  3. springsecurity sessionregistry session共享_不用 Spring Security 可否?试试这个小而美的安全框架...

    写在前面 在一款应用的整个生命周期,我们都会谈及该应用的数据安全问题.用户的合法性与数据的可见性是数据安全中非常重要的一部分.但是,一方面,不同的应用对于数据的合法性和可见性要求的维度与粒度都有所区别 ...

  4. SpringSecurity系列(一) 初识 Spring Security

    1. 写在前面 Java 领域老牌的权限管理框架当属 Shiro 了,Shiro 有着众多的优点,例如:轻量.简单.易于集成等.当然 Shiro 也有不足,例如对 OAuth2 支持不够,在 Spri ...

  5. Spring Security 在互联网项目中的实战分享

    SpringBoot 和 Spring Cloud 中默认都是使用 Spring Security框架,这门技术非学不可.那么我们在企业中该如何灵活的运用它呢? 本场 Chat 将通过以下几个方面进行 ...

  6. 在github上创建自己的第一个项目仓库实录

    学会操作git和使用Github来管理代码是技术开发人员的必备基本功,在工作中越来越发现,熟练掌握好git这个利器对工作非常有帮助, 遂静心专门攻之. 下面是我在github上创建的第一个测试项目.详 ...

  7. ExtJs6.5.2新手入门——如何用sencha cmd创建自己的第一个项目

    博主自己也是一个刚开始学习ext的小白,学习新知识一定要记录下来,直接复制自己原来写的培训手册里的,希望能帮到刚接触ExtJs的你!--[作者:伊利蛋白钙yL  原文链接:http://www.cnb ...

  8. android studio创建构造方法,使用Android studio创建你的第一个项目

    1.创建HelloWorld项目 任何编程语言写出的第一个程序毫无疑问都会是Hello World,这已经是自20世纪70年代一直流传下来的传统,在编程界已成为永恒的经典,那么今天就来使用Androi ...

  9. Spring Security(一)- SpringSecurity 框架简介

    文章目录 一.SpringSecurity 框架简介 1. 概要 2. Spring Security 与 Shiro 对比 2.1 Spring Security 2.2 SpringSecurit ...

最新文章

  1. 7-flutter Navigator 和Route
  2. Linux/unix主机环回地址的一些功用
  3. git代码回滚的几种方式
  4. 拥抱.NET 5,从自研微服务框架开始
  5. linux中mpich的运行线程,贝叶斯法构建进化树:MrBayes
  6. 测试驱动开发 测试前移_为什么测试驱动的开发有用?
  7. mysql5.5分别把这两个数据库同步到不同的从服务器
  8. php 写入套节字,php – 写入套接字并处理损坏的管道
  9. [转] Figuring out why my SVCHOST.EXE is at 100% CPU without complicated tools in Windows 7
  10. 图像特征的匹配-OpenCV3.0
  11. 小甲鱼python飞机大战素材_用Python做飞机大战(含素材)
  12. USBoot /WinHex恢复故障U盘的数据文件
  13. 揭秘淘宝用户增长全链路项目管理
  14. win10设置锁屏密码_【Win10 技巧】把手机当成电脑一对一专属密匙,人机分离自动锁屏...
  15. python运动目标绘制轨迹_实时轨迹绘制Matplotlib
  16. msg文件转成html文件,如何将MSG格式的文件转换为PDF格式文件?
  17. python对财务的作用_学习Python对财务工作者有哪些用途?
  18. Android:使用百度地图SDK定位当前具体位置(类似QQ发表说说的选择地点功能)
  19. 你见过几次四大天王同台啊
  20. Linux安装配置Discuz论坛(centos7)

热门文章

  1. 7号电单车java怎么样_亲测7号电单车 适合10公里内出行
  2. Python求圆环的面积
  3. Javascript清除所有的cookie
  4. gazebo 编辑修改已经保存的模型
  5. 十进制转十六进制 C语言
  6. linux下矩阵键盘驱动
  7. C语言文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析
  8. 《如何让你爱的人爱上你》摘要
  9. 安卓游戏开发,导入某个角色或者物体后,整个游戏变得非常卡
  10. 用MRTG监测Linux系统网络、CPU、内存和硬盘情况 1