Spring security 自定义登录页认证成功但报错405
本文主要记录自己在学习中遇到的错误和解决方法
1 环境
springboot + thymeleaf + spring security
2 错误
出现此页面 但确实已经认证成功
3 相关代码
3.1 security配置类
在这里插入代码片
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class NewSevurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 自定义登录页
http.formLogin()
.loginPage("/toLogin")
.usernameParameter("username")
.passwordParameter("password")
.loginProcessingUrl("/login")
.successForwardUrl("/");
}
// 其他配置省略
}
3.2 前端主要代码
<div>
<form th:action="@{/login}" method="post">
用户名<input type="text" name="username">
密码<input type="password" name="password">
<button type="submit" >登录</button>
</form>
</div>
4 解决方法
经检查 错误出在3.1的 successForwardUrl("/")中
使用 defaultSuccessUrl("/")替换即可
// 自定义登录页
http.formLogin()
.loginPage("/toLogin")
.usernameParameter("username")
.passwordParameter("password")
.loginProcessingUrl("/login")
.defaultSuccessUrl("/"); //将此处的successForwardUrl使用defaultSuccessUrl替换
5 错误原因
错误原因暂时不清楚 由于时间关系,所以暂且记录下。后续会深入了解问题出现的原因。