Spring MVC获取身份验证错误
如何在@Controller中获取用户身份验证错误(错误的用户名/密码、禁用/锁定/过期的帐户),并将此错误添加到要在Thymeleaf模板中显示的模型属性中?我在WebSecurity配置适配器中处理它Spring MVC获取身份验证错误,spring,spring-mvc,spring-security,thymeleaf,Spring,Spring Mvc,Spring Security,Thymeleaf,如何在@Controller中获取用户身份验证错误(错误的用户名/密码、禁用/锁定/过期的帐户),并将此错误添加到要在Thymeleaf模板中显示的模型属性中?我在WebSecurity配置适配器中处理它 http .formLogin() .loginPage("/login") .failureUrl("/login/error") @Controller方法中的数据和进程 @RequestMapping("/login/error") public Str
http
.formLogin()
.loginPage("/login")
.failureUrl("/login/error")
@Controller方法中的数据和进程
@RequestMapping("/login/error")
public String loginError(Model model) {
model.addAttribute("loginError", true);
return "login";
}
但是我应该使用什么方法参数来实现这一点呢?使用HttpSession(它包含身份验证异常对象)是可能的,但我认为这不是一个好主意。您可以使用ModelAndView calss和addObject()方法,如下所示
@RequestMapping("/login/error")
public ModelAndView loginError(Model model) {
ModelAndView mav = new ModelAndView("login");
model.addAttribute("loginError", true);
mav.addObject("errorString","User name or password is wrong")
return mav;
}
在Jsp中,您可以这样编码
错误:${errorString}您可以使用以下代码打印身份验证错误消息:
糟糕的凭证。
控制器中不需要额外的代码。但问题是:如何在该方法中获得错误?什么类型的错误?这完全取决于您为其选择的身份验证机制。它是基于LDAP还是基于数据库或文件?@VadymBorys,您使用的是哪种身份验证?我希望您的身份验证将在服务层进行,并且您是否将状态返回为字符串或对象?查看此->