使用 Spring Security 保护 Spring Boot REST API

使用 Spring Security 保护 Spring Boot REST API,第1张

使用 Spring Security 保护 Spring Boot REST API 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.


  org.springframework.boot
  spring-boot-starter-security

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


  org.springframework.boot
  spring-boot-starter-web
2.1 第 2 步:创建 REST API

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

package com.learnitweb.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {
  @GetMapping("/hello")
  public String index() {
    return "Hello world from Spring Boot!";
  }
}
2.3 第 3 步:运行应用程序

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

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

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

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

Hello world from Spring Boot!

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

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

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

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

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

spring.security.user.name=admin
spring.security.user.password=root
6. 结论

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5715604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存