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";
}