Spring Security基础-1-HttpBasic基本认证登录
Spring Security简介
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虽然说相对复杂,但是它的功能丰富个人觉得有以下优点:
Spring Security支持Oauth2.0
Spring Security可以更好的支持第三方登录
SPring Security对Spring Cloud等微服务框架有很好的衔接。
HttpBasic模式登录
HttpBasic验证方式是Spring Security中实现登录最简单的方式,这种方式并不安全,不适合web项目中使用,但是它是 一些主流认证的基础,spring security中默认的认证就是HttpBasic
创建Spring Security项目
我们这里就不过多的介绍如何创建Spring Boot项目了,如果初学者可以看一下我之前介绍的spring boot 入门介绍系列
只不过在新建项目的时候需要选择添加Spring Security的依赖,两种方式
- 在使用IDEA 创建项目的时候就添加上
- 创建好项目后在pomx.ml中添加依赖
<!--spring security--> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <version>2.6.4</version> </dependency>
- 在项目中添加一个简单的Controller层
@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测试
按照图上格式输入以后,PostMan会自动在Headers中生成Authorization
自定义用户名和密码
如果我们不想每次去查看Spring Security随机提供的密码以及我们想使用我们自己的用户名,那我我们只需要简单配置一下就可以实现
在application.yml进行配置
spring: security: user: name: admin password: admin
启动浏览器进行测试,除了输入的账号和密码不一样以外其他结果都一样。
注:因为我们账号密码登录成功以后,便会记住一段时间,让我们下次登录的时候不需要进行登录,这是浏览器的默认行为,如果我们在测试中响应避免这种情况可以将浏览器设置成无痕模式。
谷歌设置无痕模式 ctrl+shift+n
火狐设置无痕模式
如果您觉得本文不错,欢迎关注,点赞,收藏支持,您的关注是我坚持的动力!
springboot葵花宝典
主要分享JAVA技术,主要包含SpringBoot、SpingCloud、Docker、中间件等技术,以及Github开源项目