Spring Boot 教程之三十六:实现身份验证

如何在 Spring Boot 中实现简单的身份验证?

在本文中,我们将学习如何使用 Spring 设置和配置基本身份验证。身份验证是任何类型的安全性中的主要步骤之一。Spring 提供依赖项,即Spring Security ,可帮助在 API 上建立身份验证。有很多方法可以将身份验证 添加到我们的 Restful Web 服务中。但在这里我们将讨论基本的身份验证过程。

对于基本身份验证 ,我们将在 pom.xml 文件中添加spring-boot-starter-security依赖项。在 application.properties 文件中,我们将添加用于登录身份验证的用户名和密码属性。在主类中,我们将添加@EnableSpringSecurity注释以将 Spring Security 激活到 Spring Boot。

注意 :首先我们需要在我们的项目中建立 spring 应用程序。

Spring Initializr 是一个基于 Web 的工具,使用它我们可以轻松生成 Spring Boot 项目的结构。它还为以元数据模型表达的项目提供了各种不同的功能。此模型允许我们配置 JVM 支持的依赖项列表。在这里,我们将使用 spring 初始化程序创建应用程序的结构,然后使用 IDE 创建示例 GET 路由。因此,为此,请按顺序执行以下步骤:

步骤 1: 转到++++Spring Initializr++++

根据此申请的要求填写详细信息:

复制代码
Project: Maven
Language: Java
Spring Boot: 3.1.5
Packaging: JAR
Java: 17
Dependencies: Spring Web, Spring Security
IDE : STS

**步骤 2:**解压 zip 文件。现在打开 STS IDE,然后转到File > Import> Existing Maven Project > Next > Browse > Select the Project Folder > Finish。

项目导入成功后,如下图所示:

注意 :在导入 Maven 项目窗口中,请确保选择与创建项目时选择的 JDK 版本相同的版本。

步骤3: 在pom.xml文件中需要添加spring-boot-starter-security依赖,以自动配置基本的安全性。

注意:在创建项目期间,我们已经将 Spring Security Maven 依赖项添加到我们的应用程序中,因此它会自动将 spring-boot-starter-security 依赖项添加到我们的 pom.xml 文件中,我们不需要在 XML 文件中手动配置它。

下面我们可以参考启动器安全依赖项:

复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

**步骤 4:**转到 src > main > java > com.geeksforgeeks >SpringSecurityApplication.java

SpringSecurityApplication.java

  • Java

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| package com.geeksforgeeks; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; @SpringBootApplication @EnableWebSecurity public class SpringSecurityApplication { public static void main(String[] args) { SpringApplication.run(SpringSecurityApplication.class, args); } } |

通过添加**@EnableWebSecurity**注释,我们已经为Spring Boot激活了Spring安全性。

步骤 5 :创建控制器类,转到src > main > java > com.geeksforgeeks > ApplicationController

在 Controller 类中,我们使用**@RequestMapping** 注释来处理 URL。这里,RestController 名称为ApplicationController 。我们通过@RequestMapping 注释映射了 URL ,URL 路径为rest/auth 。如果请求使用 URL rest/authwelcome 发出,则它将调用该方法**。**

下面是ApplicationController类的 Java 代码:

  • Java

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| package com.geeksforgeeks.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("rest/auth") public class ApplicationController { @GetMapping("/welcome") public String welcome() { return "Hey! welcome to GeeksforGeeks"; } } |

**第 6 步:**现在我们将用户名和密码分配给 application.properties 文件。

在上图中,我们可以看到 application.properties 文件中所需的属性。

spring.security.user.name=admin
spring.security.user.password=geeksforgeeks

此应用程序现已准备好运行。运行SpringSecurityApplication类并等待 Tomcat 服务器启动。

注意 :Tomcat 服务器的默认端口是 8080,可以在 application.properties 文件中更改。

输出

Spring Security 应用程序已启动

由于请求返回了rest/auth URL,因此它将弹出类似登录页面的窗口,我们必须在其中输入用户名密码

注意: 用户名和密码必须与application.properties文件一致

转到任意浏览器并输入 http://localhost:8080/rest/auth/welcome

这是我们尝试访问任何 API 时都会出现的页面。如果通过,它将向我们的浏览器返回字符串或消息,如下所示:

相关推荐
明月醉窗台4 分钟前
qt使用笔记二:main.cpp详解
数据库·笔记·qt
HelloWord~36 分钟前
SpringSecurity+vue通用权限系统2
java·vue.js
让我上个超影吧36 分钟前
黑马点评【基于redis实现共享session登录】
java·redis
沉到海底去吧Go41 分钟前
【图片自动识别改名】识别图片中的文字并批量改名的工具,根据文字对图片批量改名,基于QT和腾讯OCR识别的实现方案
数据库·qt·ocr·图片识别自动改名·图片区域识别改名·pdf识别改名
老纪的技术唠嗑局1 小时前
重剑无锋,大巧不工 —— OceanBase 中的 Nest Loop Join 使用技巧分享
数据库·sql
BillKu1 小时前
Java + Spring Boot + Mybatis 插入数据后,获取自增 id 的方法
java·tomcat·mybatis
未来之窗软件服务1 小时前
JAVASCRIPT 前端数据库-V6--仙盟数据库架构-—-—仙盟创梦IDE
数据库·数据库架构·仙盟创梦ide·东方仙盟·东方仙盟数据库
全栈凯哥1 小时前
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
java·算法·leetcode·链表
chxii1 小时前
12.7Swing控件6 JList
java
全栈凯哥1 小时前
Java详解LeetCode 热题 100(27):LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)详解
java·算法·leetcode·链表