Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MVC获取身份验证错误_Spring_Spring Mvc_Spring Security_Thymeleaf - Fatal编程技术网

Spring MVC获取身份验证错误

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

如何在@Controller中获取用户身份验证错误(错误的用户名/密码、禁用/锁定/过期的帐户),并将此错误添加到要在Thymeleaf模板中显示的模型属性中?我在WebSecurity配置适配器中处理它

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,您使用的是哪种身份验证?我希望您的身份验证将在服务层进行,并且您是否将状态返回为字符串或对象?查看此->