ZetCode

Spring Boot 登录页面

最后修改于 2023 年 7 月 31 日

在本文中,我们将展示如何使用默认登录页面。Spring Security 默认保护所有 HTTP 端点。用户必须在默认的 HTTP 表单中登录。

要启用 Spring Boot 安全性,我们将 spring-boot-starter-security 添加到依赖项中。

Spring Boot 登录页面示例

以下示例展示了如何在 Spring Boot 应用程序中设置一个简单的登录页面。

build.gradle
...
src
├───main
│   ├───java
│   │   └───com
│   │       └───zetcode
│   │           │   Application.java
│   │           └───controller
│   │                   MyController.java
│   └───resources
│           application.properties
└───test
    └───java

这是 Spring Boot 应用程序的项目结构。

build.gradle
plugins {
    id 'org.springframework.boot' version '3.1.1'
    id 'io.spring.dependency-management' version '1.1.0'
    id 'java'
}

group = 'com.zetcode'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-security'
}

这是 Gradle 构建文件。我们有用于 web 和 security 的 starter。

resources/application.properties
spring.main.banner-mode=off
logging.pattern.console=%d{dd-MM-yyyy HH:mm:ss} %magenta([%thread]) %highlight(%-5level) %logger.%M - %msg%n

application.properties 文件中,我们关闭 Spring Boot 横幅并配置控制台日志记录模式。

com/zetcode/controller/MyController.java
package com.zetcode.controller;

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

@RestController
public class MyController {

    @GetMapping("/")
    public String home() {

        return "This is home page";
    }
}

我们有一个简单的首页。

我们运行应用程序并导航到 localhost:8080。 我们被重定向到 https://:8080/login 页面。

...
Using generated security password: df7ce50b-abae-43a1-abe1-0e17fd81a454
...

在控制台中,我们可以看到为名为 user 的默认用户生成的密码。这些凭据被提供给身份验证表单。

Login form
图:登录表单

Spring 使用 Bootstrap 来定义用户界面。

spring.security.user.name = admin
spring.security.user.password = s$cret

通过这两个选项,我们可以拥有新的用户名和密码。使用这些设置可以关闭自动生成的用户。

在本文中,我们使用了一个默认的登录表单。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。 迄今为止,我撰写了超过 1,400 篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出 所有 Spring Boot 教程