右後登記(註冊),我登錄我的用戶編程通過Spring安全:沒有Spring Security的記住我創建的cookie登錄時編程
public register(HttpServletRequest request, String user, String password) {
...
request.login(user, password);
}
這工作得很好,但它不會創建記住我的cookie(儘管使用交互式登錄cookie創建的很好)。
現在,我已經讀this和this答案,那你必須在導線的RememberMeServices
實施(我用PersistentTokenBasedRememberMeServices
),然後調用onLoginSuccess
。我沒有成功autowire PersistentTokenBasedRememberMeServices
。
如何使這項工作?這是正確的方式嗎?爲什麼Spring Security不提供更方便的方法?
P.S:這是從我配置的摘錄:
@Configuration
@EnableWebSecurity
public class WebSecConf extends WebSecurityConfigurerAdapter {
...
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.rememberMe()
.tokenRepository(new MyPersistentTokenRepository())
.rememberMeCookieName("rememberme")
.tokenValiditySeconds(60 * 60 * 24)
.alwaysRemember(true)
.useSecureCookie(true)
.and()
....
...
}
}
謝謝您的回答!我認爲,這可能是一個好方法。唯一的問題是,persistentTokenBasedRememberMeServices沒有連接 - 當調用persistentTokenBasedRememberMeServices.loginSuccess(request,response,auth)時,我得到一個'NullPointer-Exception'' – olivmir
PS:我使用Spring 4. – olivmir
一旦你定義了「@ Bean「,因爲我發佈的WebSecConf類中的PersistentTokenBasedRememberMeServices不應該爲null,因爲它在Controller中自動裝入它時不應該爲空。 – abaghel