2014-09-30 1 views
1

Я работаю над проектом Grails, который использует плагин apache siro. Я хотел бы переопределить таймаут сеанса по умолчанию. Какой был бы лучший способ сделать это? Я где-то читал, что вы можете установить:Grails + Apache Shiro plugin - Установка тайм-аута сеанса

securityManager.sessionManager.globalSessionTimeout 

Где я могу установить это? В файле Config.groovy?

Заранее за вашу помощь.

+0

Я нашел решение: SecurityUtils.subject.getSession(). SetTimeout() – mcroteau

ответ

2

Ваше решение работает в сеансе, но имеет смысл переопределить его один раз в web.xml, а не переопределять значение по умолчанию для каждого сеанса. Для этого запустите grails install-templates и отредактируйте src/templates/war/web.xml. Там, наверное, уже session-config элемент, но если вы не можете добавить один:

<session-config> 
    <session-timeout>120</session-timeout> 
</session-config> 

Чтобы избежать проблемы обновления, удалите другие файлы шаблона, если вы не планируете изменить их. Вы всегда можете повторно запустить install-templates, так как он обнаружит существующие файлы и спросит вас, следует ли перезаписывать.

+0

Имейте ввиду, что afaik, этот параметр передается на сервер приложений при первой установке вашего приложения. При повторном развертывании этот параметр игнорируется и должен быть изменен непосредственно на сервере. По крайней мере, так я помню его для tomcat ... – rdmueller

+0

Я не могу себе представить, что такая ошибка длится долго. web.xml - это дескриптор развертывания для архива, и его значения используются во время развертывания, независимо от того, развертывается ли он или развертывается. –

+0

Hm. Не видел это как ошибку, но проверит ее ... Может ли быть, что большинство людей передислоцируются перезапуском tomcat? Я думаю, в этом случае web.xml будет повторно выбран из приложения. Но я проверю, чтобы быть уверенным ... – rdmueller

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