使用 Spring Security 保护 Spring Boot REST API

Myth丶恋晨 2023-10-01 17:01 153阅读 0赞

1. 简介

在本教程中,我们将 Spring Security 与 Spring Boot 集成。我们将看到如何在 Spring Boot 应用程序中使用 Spring Security 保护 REST API。在本教程中,我们将使用 Spring Boot 创建一个简单的 REST API 并对其进行保护。您可以说本教程是实际开始使用 Spring Security 的第一步。我们不会使用任何数据库来保存用户名和密码。我们还将了解当有人尝试访问资源时如何获取登录页面。我们将使用 Spring Security 提供的默认用户名、密码和登录页面。

2. 第一步:在 Spring Boot 中获取 Spring Security

要在 Maven 项目中的 Spring Boot 应用程序中获取 Spring Security,spring-boot-starter-security请在pom.xml.

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-security</artifactId>
  4. </dependency>

我们将用于示例的另一个依赖项是spring-boot-starter-web.

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>

2.1 第 2 步:创建 REST API

我们将创建一个简单的 REST API,它返回一个简单的字符串消息。

  1. package com.learnitweb.controller;
  2. import org.springframework.web.bind.annotation.GetMapping;
  3. import org.springframework.web.bind.annotation.RestController;
  4. @RestController
  5. public class HelloWorldController {
  6. @GetMapping("/hello")
  7. public String index() {
  8. return "Hello world from Spring Boot!";
  9. }
  10. }

2.3 第 3 步:运行应用程序

除了包含 Spring 启动器依赖项之外,您无需做任何其他事情来保护您的 REST 端点。在浏览器中访问端点http://localhost:8080/hello后,您将看到如下内容:

003677b13cbbdc42ae08dc49d20966e3.png

注意:Spring Security 登录页面的默认用户名是user,密码是在控制台打印的生成的安全密码。

  1. Using generated security password: 59035b7c-e488-4ff4-9a17-75a56a3a1d2f

提供用户名和密码,您将在浏览器中看到以下消息:

  1. Hello world from Spring Boot!

登录并刷新页面后,将不会再次要求您提供凭据。您无需通过登录页面即可访问 REST 端点。

4. 多个请求如何在没有凭据的情况下工作?

如前所述,一旦您提供了凭据,您就无需在同一会话中再次提供凭据。这是一个cookie的原因JSESSIONID。请求的JSESSIONID值相同。此 cookie 用于确定是否同一个人正在尝试访问端点。如果您尝试更改该值并再次尝试访问 REST 端点,您将收到错误消息。

dd81c3efdbc9e806ff15277021784cf3.png

5.更改默认用户名和密码

您可以使用spring.security.user.namespring.security.user.password属性来定义登录用户名和密码。

  1. spring.security.user.name=admin
  2. spring.security.user.password=root

6. 结论

在本快速教程中,我们将 Spring Security 与 Spring Boot 集成,并使用默认 Spring Boot 保护 REST API。

发表评论

表情:
评论列表 (有 0 条评论,153人围观)

还没有评论,来说两句吧...

相关阅读