6
目前,我使用的是默認的HttpSession對象在兩個控制器和GSP頁面:如何在grails web應用程序中使用shiro本地會話?
在控制器:
...
session.mykey = anObject; // adding an object to session
...
if (session.otherkey) { // performing some checking
在GSP的:
...
<g:if test="${session.mykey}">
...
我想有一個「記住我「的功能。 Shiro已經內置了它。但是,據我所知,爲了做到這一點,我必須使用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會話?
你不需要本地會話來使用「記住我」。 – user852518
你有什麼建議?你能指點我一些鏈接嗎?在閱讀本文後,我嘗試了本地會話:http://grails.1312388.n4.nabble.com/Forcing-authentication-of-user-in-Grails-filter-using-Shiro-tp3698679p3702316.html – r0drigopaes
From:https: //grails.org/plugin/shiro按照慣例查看訪問控制。你只需在''SecurityUtils.groovy'''中設置'''accessControl(auth:false)'''。如果您正確傳遞rememberMe標誌,該工作。 –