首页 > 解决方案 > 在 Spring Boot 中,如何在不使用基于表单的登录时配置重定向而不是返回 403 禁止

问题描述

我有一个作为 oauth2 授权服务器运行的 Spring Boot 应用程序,以及一个用于其他端点的资源服务器。以前,人们会使用标准的基于表单的登录方式登录。

我正在重构它以使用自定义登录端点,这一切都很好。有一段 Javascript 让人们登录的过程稍微顺畅一些(即,它检测人们是否需要填写多因素身份验证代码而无需通过多个屏幕,以及其他一些可用性内容)

但是现在我想禁用标准的基于表单的登录,因为它只是一个可能很危险的向量,而且我们也不想自己使用它。然而,这也意味着我需要删除这部分:

.formLogin()
    .permitAll()
    .loginPage("/")
    .failureHandler(new CustomAuthenticationFailureHandler())
    .successHandler(successHandler())
    .and()

但是,之后在我的标准 oauth 代码端点 /oauth/authorize 上,当有人尚未登录时(即没有有效的 cookie),现在他们收到 403 错误。这是可以理解的,因为它说再也没有地方可以回去"/"了。但我仍然希望用户最终到达那里,因为那里仍然是提供索引页面和 Javascript 的地方,以便人们可以从那里登录。

我现在该如何配置?

标签: javaspringspring-bootspring-mvcspring-security-oauth2

解决方案


推荐阅读