2011-12-15 88 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

相關問題