spring-boot - Thymeleaf 下载登录空白文件,而不是导航到 login.html (Springboot)

标签 spring-boot spring-security

单击按钮导航时,无法从 index.html 导航到任何其他页面,会下载一个空白登录文件。我认为这个问题与安全文件有关,因为一开始我没有它,但添加它后很多东西都被破坏了。

这是 html 代码:

<a href="login" th:href="@{/login}" id = "LOGIN" class="active">Log In</a>

这是安全文件:

@Configuration
@EnableWebSecurity

public class Security extends WebSecurityConfigurerAdapter{
    // https://spring.io/guides/gs/securing-web/
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/","/register","/login","/css/**", "/js/**", "/images/**").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }
    @Bean
    public PasswordEncoder encoder() {
        return new BCryptPasswordEncoder(11);
    }
}

模板中有一个login.html文件。

最佳答案

一旦您通过指定 .loginPage(some_string) 覆盖默认登录页面,Spring Security 默认登录配置将被停用。

无论some_string的值是什么,即使该值为"/login",它也被视为自定义登录页面。

换句话说,在您当前的配置下,当您覆盖默认登录页面时,Spring Security 希望您为自定义登录端点创建映射。

正如 Ratul Shaker 在上面的评论中所说,您需要添加一个 @GetMapping("/login") 来返回您的自定义登录页面。

关于spring-boot - Thymeleaf 下载登录空白文件,而不是导航到 login.html (Springboot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70051126/

相关文章:

java - 使用 javascript 的 Groovy Spring Boot 项目

angular - 如何使用本地镜像路径以 Angular 显示图像

angular - JHipster 自定义错误消息翻译

angularjs - 使用 LDAP 身份验证的 Angular JS SPA

java - Spring Security使用基于xml的http认证

java - 编写具有 REST 功能的 AuthenticationFilter 的最佳方法是什么?

java - 从 JpaRepository 检索对象后,延迟加载在简单的 Hibernate/Spring 启动示例中不起作用

java - 如何在 Spring 启动中设置休息的基本网址?

java - 针对特殊用户的 maxSession 配置预防

java - Spring Security HTTP POSTMAN - 登录 - 状态 405 - 不允许方法