Spring Security的前身是AcegiSecurity,收入到Spring子项目以后改名为Spring Security。Spring Security的核心功能有两个认证和授权
Authentication:**就是身份认证(简称认证)**,用来告诉系统你是谁的
Authorization:**就是访问授权(简称授权)**,当系统指定你是谁以后,就会根据权限管理获取你应有的权限,告诉你可以干什么(简单说就是解决你能干什么)。
官方地址:https://spring.io/projects/spring-security
源码地址:https://github.com/spring-projects/spring-security
Spring Security虽然说相对复杂,但是它的功能丰富个人觉得有以下优点:
Spring Security支持Oauth2.0
Spring Security可以更好的支持第三方登录
SPring Security对Spring Cloud等微服务框架有很好的衔接。
HttpBasic验证方式是Spring Security中实现登录最简单的方式,这种方式并不安全,不适合web项目中使用,但是它是 一些主流认证的基础,spring security中默认的认证就是HttpBasic。
我们这里就不过多的介绍如何创建Spring Boot项目了,如果初学者可以看一下我之前介绍的spring boot 入门介绍系列
只不过在新建项目的时候需要选择添加Spring Security的依赖,两种方式
org.springframework.boot
spring-boot-starter-security
2.6.4
@RestController
public class TestController {
@GetMapping("/security")
public String test(){
return "hello spring security httpbasic";
}
}
输入http://localhost:8080/security我们发现,浏览器将自动进入需要进行身份验证页面
2.png
这个时候我们应该输入什么去进行登录?,其实就是Spring Security
提供了默认的用户名user,那么密码是什么?不知道你想到没有,实际上Spring Security
提供了一个随机的登录密码输出到了控制台
Spring Security 默认用户名:user
Spring Security 提供随机密码:
输入账号和密码以后获取结果如下:
按照图上格式输入以后,PostMan会自动在Headers中生成Authorization
如果我们不想每次去查看Spring Security随机提供的密码以及我们想使用我们自己的用户名,那我我们只需要简单配置一下就可以实现
spring:
security:
user:
name: admin
password: admin
启动浏览器进行测试,除了输入的账号和密码不一样以外其他结果都一样。
注:因为我们账号密码登录成功以后,便会记住一段时间,让我们下次登录的时候不需要进行登录,这是浏览器的默认行为,如果我们在测试中响应避免这种情况可以将浏览器设置成无痕模式。
谷歌设置无痕模式 ctrl+shift+n
火狐设置无痕模式
如果您觉得本文不错,欢迎关注,点赞,收藏支持,您的关注是我坚持的动力!
springboot葵花宝典
主要分享JAVA技术,主要包含SpringBoot、SpingCloud、Docker、中间件等技术,以及Github开源项目
65篇原创内容
公众号
原创不易,转载请注明出处,感谢支持!如果本文对您有用,欢迎转发分享!