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

主要内容

  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页面内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值