D
D
dshvechikov2013-03-29 10:54:18
Java
dshvechikov, 2013-03-29 10:54:18

How to make in Spring Security redirect after login'a?

I would like the user to be returned to the page from which he came after login, and not constantly to the main one.
I have the following config

<bean id="rememberMeFilter" class="org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter">
        <constructor-arg name="rememberMeServices" ref="rememberMeServices"/>
        <constructor-arg name="authenticationManager" ref="authenticationManager" />
    </bean>

    <bean id="rememberMeServices" class="org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices" >
        <constructor-arg name="tokenRepository" ref="persistentTokenRepository" />
        <constructor-arg name="userDetailsService" ref="customUserDetailService"/>
        <constructor-arg name="key" value="token"/>
        <property name="cookieName" value="token" />
        <property name="tokenValiditySeconds" value="864000" />
    </bean>

    <bean id="rememberMeAuthenticationProvider" class="org.springframework.security.authentication.RememberMeAuthenticationProvider">
        <constructor-arg name="key" value="token"/>
    </bean>

    <bean id="persistentTokenRepository" class="com.youtasked.spring.auth.MongoPersistentTokenRepositoryImpl" />

  <sec:http auto-config="true" use-expressions="true">
        <sec:session-management />
    <sec:form-login login-page="/login" authentication-failure-url="/login?error=true" login-processing-url="/j_spring_security_check"
                authentication-success-handler-ref="successLoginHandler"/>
    <sec:logout logout-success-url="/logout" delete-cookies="true" invalidate-session="true" />
        <sec:remember-me services-ref="rememberMeServices" use-secure-cookie="true" />
  </sec:http>

    <bean id="successLoginHandler" class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler" />

  <bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" />
  <bean id="saltSource" class="org.springframework.security.authentication.dao.ReflectionSaltSource">
    <property name="userPropertyToUse" value="email" />
  </bean>
  <bean id="customUserDetailService" class="com.youtasked.core.user.CustomUserDetailService" />

  <sec:authentication-manager alias="authenticationManager">
    <sec:authentication-provider user-service-ref="customUserDetailService">
      <sec:password-encoder ref="passwordEncoder">
        <sec:salt-source ref="saltSource"></sec:salt-source>
      </sec:password-encoder>
    </sec:authentication-provider>
        <sec:authentication-provider ref="rememberMeAuthenticationProvider" />
  </sec:authentication-manager>

There, when logging in, SavedRequestAwareAuthenticationSuccessHandler was added, but I read that it seems to be used by default anyway. It has a requestCache, from where the previous request should, in theory, be returned, but null is returned all the time. In general, I will be glad to any suggestions.

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question