为什么用户提交注册表格时不执行registerSubmit?春天
来源:爱站网时间:2021-09-16编辑:网友分享
我不知道为什么在提交注册表单(register.html)时为什么registerSubmit函数没有运行,我的猜测是它与Spring Security的工作方式有关。甚至尝试过...
问题描述
我不知道为什么registerSubmit函数在提交注册表单(register.html)时未运行,我想这与Spring Security的工作方式有关。甚至尝试过使用一个简单的控制器方法返回一个视图,但是根本没有执行,单击提交时我看到的全部是同一页。
RegisterController.java
@RequestMapping(value = {"/register"}, method = RequestMethod.POST)
public String registerSubmit(@Valid User user, BindingResult bindingResult){
if (bindingResult.hasErrors()){
return "register";
}
User userFound = userRepository.findByEmail(user.getEmail());
if (userFound != null)
{
System.out.println("User already in database");
return "register";
}
return "result";
}
register.html
Register Page
Register page
Login
SecurityConfig.java,我已将csrf保护禁用为@M。 Deinum建议,但这也不起作用。
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user@mail.com"). password("{noop}pass").roles("USER");
}
@Override
public void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers( "/register", "/login").permitAll()
.antMatchers("/result").permitAll()
.and()
.formLogin()
.loginPage("/login")
.usernameParameter("email")
.defaultSuccessUrl("/profile", true)
.permitAll()
.and()
.logout()
.permitAll();
}
}
思路一:
Try by adding consuming data type to headers.
@RequestMapping(
value = "/register",
method = RequestMethod.POST,
headers="Accept=application/x-www-form-urlencoded")
public String registerSubmit(@Valid User user, BindingResult bindingResult){
if (bindingResult.hasErrors()){
return "register";
}.....
如果此方法不起作用,则可以通过使用Postman之类的工具(例如发送请求的工具,并通过调试服务器端代码找出可接受的请求)来找到有关错误的更多详细信息。如果Spring Security出现问题,例如AuthenticationFailure,则错误应记录在控制台中。
思路二:
好吧,显然注册方法卡在这里
if (bindingResult.hasErrors()){
return "register";
}
下一篇:带有AlertDialog的问题