Spring MVC получит ошибку аутентификации - PullRequest
0 голосов
/ 01 мая 2018

Как получить ошибку аутентификации пользователя (неверное имя пользователя / пароль, отключенная / заблокированная / просроченная учетная запись) в @Controller и добавить эту ошибку в атрибуты модели для отображения в шаблоне Thymeleaf? Я обращаюсь с этим в WebSecurityConfigurerAdapter

http    
    .formLogin()
    .loginPage("/login")
    .failureUrl("/login/error")

и обработка в методе @Controller

@RequestMapping("/login/error")
public String loginError(Model model) {
    model.addAttribute("loginError", true);
    return "login";
}

но какой параметр метода мне следует использовать для этого? Это возможно с HttpSession (он содержит объект исключения аутентификации), но я не думаю, что это хорошая идея.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Вы можете распечатать сообщение об ошибке аутентификации со следующим кодом Thymeleaf:

<p data-th-if="${loginError == true && session.SPRING_SECURITY_LAST_EXCEPTION != null}"
   data-th-text="${session.SPRING_SECURITY_LAST_EXCEPTION.message}">
  Bad credentials.
</p>

Дополнительный код в контроллере не требуется.

0 голосов
/ 01 мая 2018

Вы можете использовать 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}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...