Как очистить сеанс apache shiro?

Я использовал сеанс apache shiro для аутентификации и авторизации.

Я могу войти в систему с другим пользователем, разрешением и ролями, но реальная проблема заключается в том, что всякий раз, когда я вызываю функцию выхода, похоже, что сеанс Широ не стирается.

Очевидным для этого является то, что всякий раз, когда я нажимаю «Выход», появляется главный экран, и если я использую кнопку «Назад» в браузере, я могу вернуться к последнему экрану.

Моя функция signOut выглядит так

// Log the user out of the application.
SecurityUtils.subject?.logout()
webRequest.getCurrentRequest().session = null
session.invalidate()    

// For now, redirect back to the home page.
redirect(uri: "/")

Любая помощь в этом действительно ценится, борясь за это за последние 2 дня.


person Srinivas HN    schedule 21.11.2013    source источник
comment
Какую версию подключаемого модуля Grails shiro вы используете?   -  person Jay P.    schedule 22.11.2013
comment
я использую Широ 1.2.0   -  person Srinivas HN    schedule 27.11.2013


Ответы (2)


У меня это работает с версией 1.1.4 плагина shiro.

def logOut() {
    SecurityUtils.subject?.logout()

    redirect(uri: "/")
}
person Jay P.    schedule 22.11.2013
comment
Я также использую тот же код, что и выход из системы, но сеанс Широ все еще активен. Если я использую кнопку «Назад» в браузере, я могу вернуться на предыдущую страницу. Если я оставлю его, скажем, примерно на 1 час, сеанс Шиора истечет, и все будет работать нормально. - person Srinivas HN; 27.11.2013

Это связано с кешем браузера. Вы можете настроить сброс кеша браузера в файле ShiroSecurityFilters.

 class ShiroSecurityFilters {
 def filters = {
    requestHeadersFilter(controller: '*', action: '*') {
             after = {
            response.setHeader("Pragma", "no-cache")
            response.setDateHeader("Expires", 0)
            response.setHeader("Cache-Control", "no-cache")
            response.addHeader("Cache-Control", "no-store")
        }
    }
person Rohith K D    schedule 23.01.2017