Spring Security Запомнить меня с провайдером аутентификации - PullRequest
1 голос
/ 07 сентября 2011

Я использую GWT с пружинной защитой.У меня есть пользовательский поставщик аутентификации, где я выполняю всю свою аутентификацию.Как я могу настроить функцию запомнить меня, не используя UserDetailsService?Я не использую LDAP.

Мой AppliationContext_security.xml

<http auto-config="true" entry-point-ref="UnauthorizedEntryPoint"
    create-session="always">
    <form-login authentication-success-handler-ref="authenticationSuccessHandler"
        authentication-failure-handler-ref="authenticationFailureHandler" />
    <logout success-handler-ref="logoutSuccessHandler"
        invalidate-session="true" />
    <intercept-url pattern="/**/myapp.rpc" access="ROLE_USER" />

    <custom-filter before="CONCURRENT_SESSION_FILTER" ref="XSRFAttackFilter" />

</http>

<authentication-manager>        
    <authentication-provider ref="myAuthenticationProvider" />
</authentication-manager>

В моем поставщике аутентификации

@Override
public Authentication authenticate(Authentication authentication)
        throws AuthenticationException {
    String username = (String) authentication.getPrincipal();
    String password = (String) authentication.getCredentials();

    boolean response = loginmanager.authenticateUser(username, password,
            ((ServletRequestAttributes) RequestContextHolder
                    .getRequestAttributes()).getRequest().getSession());
    if (!response) {
        throw new BadCredentialsException(
                "Invalid Credentials.");
    }

    Authentication authentication = ...
    authentication.setAuthenticated(true);

    return authentication;
}

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 сентября 2011

Вам нужно будет создать пользовательский UserDetailsService, который получает имя пользователя / пароль из того же места, откуда его loginmanager читает. См. Источник для TokenBasedRememberMeServices.processAutoLoginCookie(), чтобы увидеть, как он используется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...