Как использовать собственный сеанс shiro в веб-приложении grails?

В настоящее время я использую объект HttpSession по умолчанию как в контроллерах, так и на страницах gsp :

В контроллерах:

...
session.mykey = anObject;  // adding an object to session
...
if (session.otherkey) {    // performing some checking

В GSP:

...
<g:if test="${session.mykey}">
...

я хотел бы иметь функцию «запомнить меня». Широ уже встроил его. Однако, насколько я понял, для этого мне нужно использовать собственный режим сеанса shiro (в Config.groovy: security.shiro.session.mode = "native"). По умолчанию он сохраняет состояние сеанса, поэтому объекты будут оставаться в сеансе до истечения срока действия файла cookie или выхода пользователя из системы.

Правильно ли я понимаю?

Тогда мне придется изменить мои контроллеры на это:

def shiroSession = SecurityUtils.subject.session
shiroSession.setAttribute("mykey",anObject)
....
if (shiroSession.getAttribute("otherkey") ){

И мои взгляды на это:

<g:if test="${SecurityUtils.subject.session.getAttribute('mykey')}">

Итак, мои вопросы:

  • Верно?
  • Разве я не могу просто использовать предыдущий способ доступа к сеансу?
  • Нужно ли мне отключать HTTP-сеанс по умолчанию в какой-либо конфигурации?
6
задан r0drigopaes 20 November 2011 в 21:50
поделиться