Spring Security基础-1-HttpBasic基本认证登录

简介: Spring Security简介Spring Security的前身是AcegiSecurity,收入到Spring子项目以后改名为Spring Security。Spring Security的核心功能有两个认证和授权

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 创建项目的时候就添加上


5f842ddce65130a6aabea1684b9491f1.png


  • 创建好项目后在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我们发现,浏览器将自动进入需要进行身份验证页面



06ff3326dcf38d288df520317fe186ce.png

2.png

这个时候我们应该输入什么去进行登录?,其实就是Spring Security提供了默认的用户名user,那么密码是什么?不知道你想到没有,实际上Spring Security提供了一个随机的登录密码输出到了控制台


  • Spring Security 默认用户名:user
  • Spring Security 提供随机密码:

19a9ea3ef29c3cd399006662831fb059.png


输入账号和密码以后获取结果如下:

使用PostMan测试



6848bd41fd4bce2c59b6801919ee16b2.png



按照图上格式输入以后,PostMan会自动在Headers中生成Authorization

自定义用户名和密码


如果我们不想每次去查看Spring Security随机提供的密码以及我们想使用我们自己的用户名,那我我们只需要简单配置一下就可以实现

在application.yml进行配置

spring:
  security:
    user:
      name: admin
      password: admin


启动浏览器进行测试,除了输入的账号和密码不一样以外其他结果都一样。


注:因为我们账号密码登录成功以后,便会记住一段时间,让我们下次登录的时候不需要进行登录,这是浏览器的默认行为,如果我们在测试中响应避免这种情况可以将浏览器设置成无痕模式。


谷歌设置无痕模式   ctrl+shift+n


火狐设置无痕模式


b0acd66ed8f167721c4d816ac56bfc5d.png


如果您觉得本文不错,欢迎关注,点赞,收藏支持,您的关注是我坚持的动力!


springboot葵花宝典

主要分享JAVA技术,主要包含SpringBoot、SpingCloud、Docker、中间件等技术,以及Github开源项目

目录
相关文章
|
14天前
|
安全 Java 数据安全/隐私保护
|
18天前
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
35 0
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
|
18天前
|
存储 安全 前端开发
第6章 Spring Security 的 Web 安全性(2024 最新版)(上)
第6章 Spring Security 的 Web 安全性(2024 最新版)
53 0
|
18天前
|
安全 Java Go
第6章 Spring Security 的 Web 安全性(2024 最新版)(下)
第6章 Spring Security 的 Web 安全性(2024 最新版)
46 1
|
18天前
|
存储 安全 Java
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)(下)
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)
22 2
|
18天前
|
安全 Cloud Native Java
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)(上)
第10章 Spring Security 的未来趋势与高级话题(2024 最新版)
28 2
|
18天前
|
存储 安全 Java
第9章 Spring Security 的测试与维护 (2024 最新版)(下)
第9章 Spring Security 的测试与维护 (2024 最新版)
20 1
|
18天前
|
安全 Java 测试技术
第9章 Spring Security 的测试与维护 (2024 最新版)(上)
第9章 Spring Security 的测试与维护 (2024 最新版)
21 0
|
18天前
|
缓存 Java 数据库
第8章 Spring Security 的常见问题与解决方案(2024 最新版)(下)
第8章 Spring Security 的常见问题与解决方案(2024 最新版)
27 0
|
18天前
|
安全 Java 数据安全/隐私保护
第8章 Spring Security 的常见问题与解决方案(2024 最新版)(上)
第8章 Spring Security 的常见问题与解决方案(2024 最新版)
33 0