Я работаю над проектом, основанным на весне; Для интерфейса входа в систему пользователя я использую Spring Security 4.0.3; Все в порядке контроля параллелизма, но я хотел бы получить специальное сообщение об ошибке, когда пользователь попытается выполнить вход в другое время, а сеанс предыдущего ведения журнала не истек. Для запоминания вопроса я исправлен, так как он использует session-authentication-error-url="/login?auth_error
Но для множественного ведения журнала из формы он перенаправляет URL-адрес, указанный в <form-login login-page="/login" default-target-url="/"
То же самое используется для неправильного имени пользователя или пароля. Поскольку я использую параметр, указанный в URL-адресе, для отправки ошибки при перенаправлении, как я могу сделать, чтобы отправить пользователя на страницу, например
authentication-failure-url="/login?error" />/login?different_error
? Управление сеансами в spring-security.xml
Spring Security 4 Concurrency Control, хотите использовать аутентификацию-ошибка-url как для неправильного входа в систему, так и для пользователя, уже зарегистрированного
<session-management invalid-session-url="/login?invalid"
session-authentication-error-url="/login?auth_error">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>
Listener в web.xml
<listener-class>
org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
журнал в методе контроллера
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login(@RequestParam(value = "error", required = false) String error,
@RequestParam(value = "logout", required = false) String logout,
@RequestParam(value = "invalid", required = false) String invalid,
@RequestParam(value = "auth_error", required = false) String auth_error) {
ModelAndView model = new ModelAndView();
if (error != null) {
model.addObject("error", "Username e/o password non validi!");
}
if (logout != null) {
model.addObject("msg", "Hai effettuato il logout!");
}
if (invalid != null) {
model.addObject("error", "invalid session ID");
}
if (auth_error != null) {
model.addObject("error", "Utente già loggato nel sistema");
}
model.setViewName("login");
return model;
}
Спасибо, любая помощь будет очень ценна.
Edit: выход пользователя также обнаружен как недопустимые сессии