2011-12-15 78 views
3

我有一个自定义auth提供程序,它针对REST API工作,现在想实现Remember Me功能。Grails Spring Security记得我

下面是我在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" 

我不能看到peristent饼干实际上被成功登录设置。我在配置中丢失了什么?

**更新** 我可以去创建一个cookie,如果我补充一下:

grails.plugins.springsecurity.rememberMe.persistent = true 

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

由于提前, 托德

+0

也许没有cookie被设置,因为令牌回购是“InMemoryTokenRepositoryImpl”时!conf.rememberMe.persistent? – 2011-12-16 15:43:34

回答

3

为子孙后代着想,我与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 /春/资源去。 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基于GormPersistentTokenRepository,但已经更新,使REST调用CRUD功能而不是GORM。

+0

grails.plugins.springsecurity.rememberMe.rememberMe.persistent = true 这是一个错字:“... rememberMe.rememberMe ...”? – Mexx 2016-05-23 13:53:41