首页 > 解决方案 > Spring Boot + Spring Security 的自定义登录页面

问题描述

下面是我的配置。我导航到http://localhost:8080并被重定向到预期的http://localhost:8080/bruceLogin。但是我的页面显示“Whitelabel 错误页面。此应用程序没有 /error 的显式映射,因此您将其视为后备...”。请注意,我在 src/main/resources/template 下确实有一个名为 bruceLogin1.html 的简单 html 页面。知道我在这里缺少什么吗?

*旁注:一个可悲的事情是 Spring Boot 没有为开发人员提供一种机制来配置自定义登录页面,只使用属性文件。

@SpringBootApplication
@EnableWebSecurity
public class SpringSecurityCatalogApplication  implements WebMvcConfigurer {

    public static void main(String[] args) {
        SpringApplication.run(SpringSecurityCatalogApplication.class, args);
    }


    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/bruceLogin").setViewName("bruceLogin1");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
    }

    @EnableWebSecurity
    @Order(Ordered.HIGHEST_PRECEDENCE)
    class SecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {

             http
             .authorizeRequests()
             .antMatchers("/resources/**").permitAll()
             .anyRequest().authenticated()
             .and()
             .formLogin()
             .loginPage("/bruceLogin")
             .permitAll();
        }
    }
}

标签: javaspringspring-bootauthenticationspring-security

解决方案


解决方案:在我的 build.gradle 中添加 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 后,此问题得到解决。感谢 Pham Thai Thinh 的建议


推荐阅读