Recht nach Anmeldung (Anmeldung) Ich bin in meinem Benutzer programmatisch über Spring Security Anmeldung:No Spring Security Remember me Cookie erstellt beim Einloggen programmatisch
public register(HttpServletRequest request, String user, String password) {
...
request.login(user, password);
}
Dies funktioniert gut, aber es nicht schaffen der Remember-Me-Cookie (obwohl beim interaktiven Login der Cookie gut erstellt wird).
Jetzt in this und this Antwort habe ich gelesen habe, dass Sie bei der Umsetzung von RememberMeServices
zu Draht haben (ich benutze PersistentTokenBasedRememberMeServices
) und dann onLoginSuccess
nennen. Ich war nicht erfolgreich, um PersistentTokenBasedRememberMeServices
zu autowire.
Wie funktioniert das? Ist das der richtige Weg? Warum Spring Security bietet keinen bequemeren Weg?
P. S .: Das ist ein Auszug aus meiner Konfiguration:
@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()
....
...
}
}
Vielen Dank für Ihre Antwort! Ich denke, das könnte ein guter Ansatz sein. Das einzige Problem ist, dass 'persistantTokenBasedRememberMeServices' nicht verkabelt ist - ich bekomme eine' NullPointer-Exception' beim Aufruf von 'persistentTokenBasedRememberMeServices.loginSuccess (request, response, auth)' – olivmir
PS: Ich benutze Spring 4. – olivmir
Sobald Sie "@ Bean "für PersistentTokenBasedRememberMeServices in Ihrer WebSecConf-Klasse, wie ich es gepostet habe, sollte nicht null sein, wenn Sie es in Controller autowire. – abaghel