2017-02-10 1 views
-1

Я работаю над проектом, основанным на весне; Для интерфейса входа в систему пользователя я использую Spring Security 4.0.3; Все в порядке контроля параллелизма, но я хотел бы получить специальное сообщение об ошибке, когда пользователь попытается выполнить вход в другое время, а сеанс предыдущего ведения журнала не истек. Для запоминания вопроса я исправлен, так как он использует session-authentication-error-url="/login?auth_error Но для множественного ведения журнала из формы он перенаправляет URL-адрес, указанный в <form-login login-page="/login" default-target-url="/"
authentication-failure-url="/login?error" />
То же самое используется для неправильного имени пользователя или пароля. Поскольку я использую параметр, указанный в URL-адресе, для отправки ошибки при перенаправлении, как я могу сделать, чтобы отправить пользователя на страницу, например /login?different_error? Управление сеансами в spring-security.xmlSpring 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: выход пользователя также обнаружен как недопустимые сессии

ответ

0

Просто ввести здесь; Вы можете установить атрибут say («secondlogin», true); Затем на странице jsp вы можете отобразить собственное сообщение на основе этого атрибута.

Смежные вопросы