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

ops/2024/12/23 10:43:04/

如何在 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 时都会出现的页面。如果通过,它将向我们的浏览器返回字符串或消息,如下所示:


http://www.ppmy.cn/ops/144287.html

相关文章

webpack最基础的配置

以下是一个基本的webpack配置示例&#xff0c;它包括了入口文件、输出配置以及模式设置&#xff08;开发模式或生产模式&#xff09;。 const path require(path);module.exports (env, argv) > {// 根据传入的参数确定是开发模式还是生产模式const isProduction argv.m…

[创业之路-199]:《华为战略管理法-DSTE实战体系》- 3 - 价值转移理论与利润区理论

目录 一、价值转移理论 1.1. 什么是价值&#xff1f; 1.2. 什么价值创造 &#xff08;1&#xff09;、定义 &#xff08;2&#xff09;、影响价值创造的因素 &#xff08;3&#xff09;、价值创造的三个过程 &#xff08;4&#xff09;、价值创造的实践 &#xff08;5&…

鸿蒙项目云捐助第十六讲云捐助使用云数据库实现登录注册

鸿蒙项目云捐助第十六讲云捐助使用云数据库实现登录注册 前面介绍了云函数云数据库的基本使用方法&#xff0c;这里结合鸿蒙云捐助之前的页面实现进行云数据库的登录注册逻辑实现。 如果之前创建的不是端云一体化的项目&#xff0c;这里需要进行单机项目向端云一体化项目进行…

Vue3之Vite介绍

一、Vite概述 Vite是一个由Vue.js的作者尤雨溪开发的新一代前端构建工具。它的主要特点包括极快的开发和构建速度、按需加载、即时热模块替换&#xff08;HMR&#xff09;、丰富的插件生态系统等。Vite旨在通过利用现代浏览器对ES Modules的原生支持&#xff0c;提供比传统打包…

Kibana8.17.0在mac上的安装

1、Kibana是什么 Kibana是与elasticsearch配套使用的数据分析与可视化工具&#xff0c;通过Kibana可以轻松与es中存储的数据进行高效的交互&#xff0c;包括数据写入、检索、删除等操作&#xff0c;并可以通过编写部分代码将数据做成各种报表&#xff0c;从而进行非常直观的统…

探索 CI/CD 工具的力量

CI/CD 工具是什么&#xff1f; CI/CD 工具是开发者的“生产力加速器”。它通过自动化代码构建、测试、部署等流程&#xff0c;消除了繁琐的手动操作&#xff0c;确保开发和运维的无缝衔接。借助这些工具&#xff0c;开发者不仅能够更快地发布产品&#xff0c;还能更早发现问题…

CMakeLists.txt 常用语法详解

CMake 是一个跨平台的开源构建系统&#xff0c;广泛应用于C项目中。CMake通过CMakeLists.txt文件来配置项目的构建过程。本文将介绍CMakeLists.txt的常用语法&#xff0c;帮助你快速上手并优化你的项目构建流程。 简介 CMakeLists.txt 是CMake的配置文件&#xff0c;用于定义…

如何在 Mechanical LS-DYNA 中设置自适应实体到 SPH 模型

总结 在这篇博文中&#xff0c;介绍了 LS-DYNA 功能的“Adaptive Solid to SPH”在 Ansys Mechanical 中的使用。解释了 SPH 公式与经典实体元素相结合的使用&#xff0c;并通过一个简单的示例开发了设置及其主要参数。 什么是 SPH&#xff1f; 平滑粒子流体动力学 &#xff…