Я использую Apache Shiro в веб-приложении. Логин и аутентификация Проверка работает хорошо, но у меня есть проблема, чтобы реализовать механизм выхода из системы/повторного входа в систему: выход из системы осуществляется в сервлет:Shiro: сеанс уже недействителен
private void logout(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
log.debug("do logout");
Subject subject = SecurityUtils.getSubject();
subject.logout();
resp.sendRedirect("end.html");
}
Но после выхода из системы и повторно Войти Я получаю следующее ошибка:
org.apache.shiro.session.InvalidSessionException: java.lang.IllegalStateException:
getAttribute: Session already invalidated
at org.apache.shiro.web.session.HttpServletSession.removeAttribute(HttpServletSession.java:167)
at org.apache.shiro.session.ProxiedSession.removeAttribute(ProxiedSession.java:135)
at org.apache.shiro.subject.support.DelegatingSubject.clearRunAsIdentities(DelegatingSubject.java:424)
at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:246)
Войти осуществляются следующим образом (в методе компонента пользовательского интерфейса, я использую ZK в рамках пользовательского интерфейса):
private void tryLogin(UsernamePasswordToken token) {
Subject subject = SecurityUtils.getSubject();
try {
subject.login(token);
...
Я не понимаю, исключения в качестве выхода из системы фр om shiro делает недействительным сеанс, и повторный вход в систему должен получить доступ к новому сеансу.
Спасибо за помощь
Привет, я использую версию Shiro '1.2.4', все еще получаю тот же вопрос' GetAttribute: Session уже invalidated' после выхода из системы и повторного входа. Любая помощь? – Newbie