Я интегрировал Spring Security в свое приложение и хотел бы показать пользователю сообщение об ошибке в случае неверных учетных данных.
Я подключил все, чтобы отобразить сообщение, но оно не работает,Ниже приведены фрагменты кода
spring-security.xml
<form-login
login-page="/spring/login"
authentication-failure-url="/spring/login?error=true"
default-target-url="/spring/index"/>
<authentication-manager>
<authentication-provider user-service-ref="customService">
</authentication-provider>
</authentication-manager>
CustomService реализует UserDetailsService
, а в методе loadUserByUsername
я возвращаю объект Spring UserDetails
, который содержитсведения о пользователе.
Мой контроллер выглядит следующим образом
@RequestMapping(value="/login", method = RequestMethod.POST)
public String getLogin(@RequestParam(value="error", required=false) boolean error,
ModelMap model){
if (error == true) {
// Assign an error message
model.put("error", "You have entered an invalid username or password!");
} else {
model.put("error", "");
}
return "loginpage";
}
Моя страница входа содержит следующий div для отображения ошибки
<div id="login-error">
<c:if test="${not empty param.error}">
Your login attempt was not successful, try again.<br />
</c:if>
</div>
Когда я ввожу неправильные учетные данные, он перенаправляется на страницу входа, но сообщение не отображается.
Пожалуйста, помогите и исправьте меня, если я делаю что-то не так.