Grails Spring Security记得我 [英] Grails Spring Security Remember Me

查看:149
本文介绍了Grails Spring Security记得我的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个自定义auth提供程序,用于处理REST API,现在想实现记住我的功能。



以下是Config.groovy中的内容:

  grails.plugins.springsecurity.providerNames = [
'zubAuthenticationProvider',
'rememberMeAuthenticationProvider'
]
grails.plugins.springsecurity.auth.loginFormUrl =/ login
grails.plugins.springsecurity.rememberMe.cookieName =example1
grails.plugins.springsecurity.rememberMe.key = example1

我无法在成功登录时看到实际设置的cookie。我在配置中丢失了什么?



** UPDATE **
我可以得到一个cookie,如果我添加:

  grails.plugins.springsecurity.rememberMe.persistent = true 

但是,这只会导致另一个不使用数据库登录存储的问题。



在此先感谢,
Todd

解决方案

为了后代的缘故,我将使用以下内容 -

Config.groovy $ b

  grails.plugins.springsecurity.providerNames = [
'zubAuthenticationProvider',
' rememberMeAuthenticationProvider'
]

grails.plugins.springsecurity.rememberMe.cookieName =stackoverflow
grails.plugins.springsecurity.rememberMe.key =_ grails_
grails .plugins.springsecurity.rememberMe.rememberMe.persistent = true



conf / spring / resources。 groovy

  userDetailsS​​ervice(com.z ub.security.EgUserDetailsS​​ervice){
grailsApplication = ref('grailsApplication')
}
tokenRepository(com.zub.security.EgPersistentTokenRepository){
grailsApplication = ref('grailsApplication' )
}

def conf = SpringSecurityUtils.securityConfig
rememberMeServices(PersistentTokenBasedRememberMeServices){
userDetailsS​​ervice = ref(userDetailsS​​ervice)
key = conf.rememberMe .key
cookieName = conf.rememberMe.cookieName
alwaysRemember = conf.rememberMe.alwaysRemember
tokenValiditySeconds = conf.rememberMe.tokenValiditySeconds
parameter = conf.rememberMe.parameter
useSecureCookie = conf.rememberMe.useSecureCookie // false

tokenRepository = ref('tokenRepository')
seriesLength = conf.rememberMe.persistentToken.seriesLength // 16
tokenLength = conf。 rememberMe.persistentToken.tokenLength // 16
}

EgPersistentT okenRepository基于GormPersistentTokenRepository,但已经更新,使REST调用CRUD功能而不是GORM。


I have a custom auth provider working against a REST API and now want to implement Remember Me functionality.

Here's what I have in Config.groovy:

grails.plugins.springsecurity.providerNames = [
   'zubAuthenticationProvider',
   'rememberMeAuthenticationProvider'
]
grails.plugins.springsecurity.auth.loginFormUrl="/login"
grails.plugins.springsecurity.rememberMe.cookieName="example1"
grails.plugins.springsecurity.rememberMe.key="example1"

I can't see the peristent cookie actually being set on successful login. Am I missing something in config?

** UPDATE ** I can get a cookie to be created if I add:

grails.plugins.springsecurity.rememberMe.persistent = true

But, that just leads to another problem of not using a database for login storage.

Thanks in advance, Todd

解决方案

For posterity sake, I'm going with the following--

Config.groovy

grails.plugins.springsecurity.providerNames = [
   'zubAuthenticationProvider',
   'rememberMeAuthenticationProvider'
]

grails.plugins.springsecurity.rememberMe.cookieName="stackoverflow"
grails.plugins.springsecurity.rememberMe.key="_grails_"
grails.plugins.springsecurity.rememberMe.rememberMe.persistent = true

conf/spring/resources.groovy

userDetailsService(com.zub.security.EgUserDetailsService) {
   grailsApplication = ref('grailsApplication')
}
tokenRepository(com.zub.security.EgPersistentTokenRepository) {
    grailsApplication = ref('grailsApplication')
}

def conf = SpringSecurityUtils.securityConfig
rememberMeServices(PersistentTokenBasedRememberMeServices) {
    userDetailsService = ref("userDetailsService")
    key = conf.rememberMe.key
    cookieName = conf.rememberMe.cookieName
    alwaysRemember = conf.rememberMe.alwaysRemember
    tokenValiditySeconds = conf.rememberMe.tokenValiditySeconds
    parameter = conf.rememberMe.parameter
    useSecureCookie = conf.rememberMe.useSecureCookie // false

    tokenRepository = ref('tokenRepository')
    seriesLength = conf.rememberMe.persistentToken.seriesLength // 16
    tokenLength = conf.rememberMe.persistentToken.tokenLength // 16
}

EgPersistentTokenRepository is based on GormPersistentTokenRepository but has been updated to make REST calls for CRUD functionality rather than GORM.

这篇关于Grails Spring Security记得我的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆