Помни меня - весенняя безопасность - PullRequest
1 голос
/ 18 марта 2011

В настоящее время я пытаюсь реализовать функцию «Запомнить меня» на моем веб-сайте. Следующее является частью моей конфигурации

<security:remember-me services-ref="rememberMeServices" />  
<bean id="rememberMeServices" class="com.entertainment.ecom.web.auth.EcomRemembe rMeServices">  
<property name="userDetailsService" ref="ecomUserDetailsService"/>  
<property name="key" value="a23eef6dfd1514cb885f47070380ff18"/>  
<property name="cookieName" value="ENTC"/>  
<property name="tokenValiditySeconds" value="80000"/>  
</bean>

Мой EcomRememberMeServices расширяет AbstractRememberMeServices, и я переопределил onLoginFail & onLoginSuccess методы. У меня вопрос, откуда будет вызываться мой метод onLoginSuccess()?

Я попытался запустить вышеупомянутую конфигурацию, и было замечено, что onLoginFail вызывается через RememberMeAuthenticationFilter(rememberMeServices.loginFail(request, response)), но когда я проверил исходный код этого фильтра, я не смог найти никакого вызова для метода onLoginSuccess() или loginSuccess(). Так что мне нужно это явно назвать?

В BasicAuthenticationFilter есть вызов для этого метода. Поэтому я пытался использовать его, но все равно я не работал. (<http-basic/>). Так может кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 18 марта 2011

Существует еще один метод logout (), который вызывается фильтром выхода из системы.Я полагаю, вам также нужно добавить rememberMeServices в фильтр входа и выхода из системы (я не уверен, что это можно сделать в элементе http в xml):

    <bean id="logoutFilter"   class="org.springframework.security.web.authentication.logout.LogoutFilter">
    <constructor-arg index="0" type="org.springframework.security.web.authentication.logout.LogoutSuccessHandler" ref="logoutSuccessHandler" />
    <constructor-arg index="1">
        <list value-type="org.springframework.security.web.authentication.logout.LogoutHandler">
            <ref local="rememberMeServices"/>
        </list>
    </constructor-arg>
</bean>

и

<bean id="formLoginFilter"   class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
     ...

     <property name="rememberMeServices">
            <ref local="rememberMeServices" />
     </property> 
</bean>
...