Spring Security 默认登录表单不会被自定义登录页面替换
Posted
技术标签:
【中文标题】Spring Security 默认登录表单不会被自定义登录页面替换【英文标题】:Spring Security default login form doesn't get replaced with custom login page 【发布时间】:2021-04-27 18:16:44 【问题描述】:如何在应用程序开始运行时删除默认登录页面作为第一页?我正在构建一个电子商务网站,其主页中包含一些产品,每个人都可以查看,登录后应该只有仪表板可用,这应该基于角色即。用户或管理员
我已禁用 httpBasic,因为我想要第一个登录页面,即所有人的主页,并且我想使用自定义登录页面,但在浏览器“/login”中使用时,它会出现在默认登录页面上
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
@Override
protected void configure(HttpSecurity http) throws Exception
http.httpBasic().disable();
http.formLogin().loginPage("/login");
在主控制器类中,我有“/login”的 RequestMapping 以重定向到我的自定义页面
@Controller
public class mainController
@RequestMapping("/login")
public String registration()
return "login-register";
@GetMapping("/my-account")
public String account()
return "my-account";
【问题讨论】:
【参考方案1】:首先,登录页面的名称应与控制器中的返回值相匹配。
我的意思是,如果您的登录页面是这样的:login.html
您的控制器方法应该如下所示。
@GetMapping("/login")
public String login()
return "login";
但是如果问题仍然存在尝试修改你的配置方法。
http
.formLogin()
.loginPage("/login");
【讨论】:
以上是关于Spring Security 默认登录表单不会被自定义登录页面替换的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Spring Security 中用自定义替换标准登录表单
spring security 改变 spring_security_login 表单