Spring Security 简介
Spring Security 是Spring家族中的一个安全管理框架。相比较Shiro,提供了更丰富的功能,社区资源也比较丰富。
针对于前后端分离,是一套安全框架。
两大核心功能:
一般的web应用需要进行认证和授权
认证:验证当前访问系统是不是本系统用户,并且要确认具体是哪个用户
授权:经过认证后判断当前用户是否有权限进行某个操作
关于用户身份认证与授权——授权发生在身份认证之后
Spring Security 是用于解决认证与授权的框架。
spring:创建对象,管理对象
springMVC:接受请求,响应结果
mybatis:解决增删改查
Spring-vaditation:只检查参数有效性
入门案例
第一步:创建Maven项目。
第二步:添加依赖
第三步: 编写Controller层 HelloController.java
package com.simia.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/hello") public String hello(){ return "hello!"; } }
添加spring security之前可以直接访问到Controller层
添加之后需要登录请求才能访问到conreoller层 特点:有默认的用户名密码
①默认用户名和密码 User 密码是随机的,每次启动项目都会不同。
Spring Security的依赖项中包括了Bcrypt算法的工具类,是非常优秀的密码加密工具,适用于对需要存储下来的密码进行加密处理。解不出来。
就是:原文相同,密文不同,但是每个密文跟原文都可以匹配上。
传输过程加密:加密,解密
MD5缺陷:简单密码在网上通过密文可以找出原文 所以需要考虑加盐才可以保证密码的安全性。
密码会在控制台的日志中输出,比如下图:
②默认要求所有的请求都是必须先登录才允许访问
在测试登陆时,在浏览器访问当前主机的任意网址都可以(包括不存在资源404),会自动跳转到登录页(由spring Security提供,默认的URL是:http://localhost:8080/login)的界面,登陆成功后,会自动跳转到此前访问的URL(跳转登录页之前的URL)。
另外,还可以通过http://localhost:8080/logout退出登录。
局限性:
如果Spring Security 集成到项目中的话,用默认用户名密码肯定不符合项目实际需求,所以有些地方需要修改。