繁体   English   中英

Spring Boot Security 自定义登录页面未加载

[英]Spring Boot Security custom login page doesn't load

我正在尝试在我的 Spring 项目上实现自定义登录页面,但是当我运行该项目并尝试访问登录页面时,出现以下错误:

白标错误页面 此应用程序没有明确的 /error 映射,因此您将其视为后备。 Fri Oct 01 04:43:26 BRT 2021 出现意外错误(类型=未找到,状态=404)。

以下是文件:

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

模板控制器.java

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/")
public class TemplateController {

    @GetMapping("login")
    public String getLogin() {
        return "login";
    }

    @GetMapping("courses")
    public String getCourses() {
        return "courses";
    }
}

应用程序安全配置.java

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        .csrf().disable() 
        .authorizeRequests()
        .antMatchers("/", "index", "css/*", "js/*").permitAll()
        .antMatchers("api/**").hasRole(CUSTOMER.name())
        .anyRequest()
        .authenticated()
        .and()
        .formLogin()
            .loginPage("/login")
            .permitAll()
            .defaultSuccessUrl("/courses", true)
            .and()
            .rememberMe();
    }

login.html 位于资源(Spring 项目的默认文件夹)内的名为templates 的文件夹中,它似乎工作正常,因为它的视图在 Eclipse 上显示为 Visual/Source。

有谁知道可能导致此错误的原因是什么?

问题解决了,各位。 我只是将TemplateController.java移动到com.example.demo.controller包。 现在它运行完美!

但感谢所有试图帮助我的人!

尝试将这样的 html 文件添加到代码中:

.antMatchers("/overview", "/employees/*",
                        "terminal/*", "/user/*", "/create").permitAll()

这些都是我自己项目中的 html 页面,我有同样的问题,像这样添加它们,安全性不会干扰映射。所以你需要包含你自己的 html 页面文件,然后它们可以通过你的系统访问。 至少这在我们的项目中对我们有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM