Attualmente, sto usando l'oggetto predefinito HttpSession in entrambi i controller e le pagine SPG:Come utilizzare una sessione nativa shiro in un'applicazione web Grails?
Nei controllori:
...
session.mykey = anObject; // adding an object to session
...
if (session.otherkey) { // performing some checking
In GSP:
...
<g:if test="${session.mykey}">
...
mi piacerebbe avere un " ricordati di me "funzionalità. Shiro lo ha già costruito. Tuttavia, per quanto ho capito, per farlo devo usare la modalità sessione nativa shiro (in Config.groovy: security.shiro.session.mode = "native"). Per impostazione predefinita, persiste lo stato della sessione, quindi gli oggetti rimarranno nella sessione fino alla scadenza del cookie o alla disconnessione dell'utente.
La mia comprensione è corretta?
allora dovrò cambiare il mio controller per questo:
def shiroSession = SecurityUtils.subject.session
shiroSession.setAttribute("mykey",anObject)
....
if (shiroSession.getAttribute("otherkey")){
E le mie opinioni a questo:
<g:if test="${SecurityUtils.subject.session.getAttribute('mykey')}">
Quindi, le mie domande sono:
- È quello giusto ?
- Non posso semplicemente usare il modo precedente per accedere alla sessione?
- Devo disattivare la sessione http predefinita in alcune configurazioni?
non è necessaria la sessione nativa per utilizzare "ricordami". – user852518
cosa suggerisci? Puoi indicarmi qualche link? Ho provato la sessione nativa dopo aver letto questo post: http://grails.1312388.n4.nabble.com/Forcing-authentication-of-user-in-Grails-filter-using-Shiro-tp3698679p3702316.html – r0drigopaes
Da: https: //grails.org/plugin/shiro guarda al controllo degli accessi per convenzione. Basta impostare '' 'accessControl (auth: false)' '' in '' 'SecurityUtils.groovy'''. Dovrebbe funzionare se si passa il flag rememberMe correttamente. –