Jak przekierować do strony głównej, jeśli użytkownik uzyskuje dostęp do strony logowania po zalogowaniu?

Oto moja wiosenna konfiguracja bezpieczeństwa:

<http pattern="/auth/login" security="none" />
<http pattern="/auth/loginFailed" security="none" />
<http pattern="/resources/**" security="none" />

<http auto-config="true" access-decision-manager-ref="accessDecisionManager">
    <intercept-url pattern="/auth/logout" access="permitAll"/>
    <intercept-url pattern="/admin/**" access="ADMINISTRATIVE_ACCESS"/>
    <intercept-url pattern="/**" access="XYZ_ACCESS"/>

    <form-login
        login-page="/auth/login"
        authentication-failure-url="/auth/loginFailed"
        authentication-success-handler-ref="authenticationSuccessHandler" />
    <logout logout-url="/auth/logout" logout-success-url="/auth/login" />
</http>

TheauthenticationSuccessHandler przedłużaSavedRequestAwareAuthenticationSuccessHandler zapewnienie, że użytkownik zostanie przekierowany na stronę, o którą pierwotnie poprosił.

Jednak od tego czasu/auth/login jest oznaczony jakosecurity="none", Nie mogę pomyślnie przekierować użytkownika na stronę główną, jeśli po zalogowaniu się na stronie logowania uzyskuje dostęp do strony logowania.doświadczenie użytkownika zbyt.

Próbowałem też poniżej, alePrincipal obiekt jest zawszenull, przypuszczalnie z powodusecurity="none" ponownie atrybut.

@RequestMapping(value = "/auth/login", method = GET)
public String showLoginForm(HttpServletRequest request, Principal principal) {
    if(principal != null) {
        return "redirect:/";
    }

    return "login";
}

questionAnswers(6)

yourAnswerToTheQuestion