Como redirecionar para a página inicial se o usuário acessa a página de login após ter feito o login?
Aqui está a minha configuração de segurança de primavera:
<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>
oauthenticationSuccessHandler
estende oSavedRequestAwareAuthenticationSuccessHandler
garantindo que o usuário seja redirecionado para a página originalmente solicitada.
No entanto, desde/auth/login
está marcado comosecurity="none"
, Não consigo redirecionar o usuário para a página inicial com êxito se ele acessa a página de login depois de ter efetuado login. Acredito que esse seja o direitoexperiência de usuário também.
Eu tentei o abaixo também, mas oPrincipal
objeto é semprenull
, presumivelmente por causa dasecurity="none"
Atribuir novamente.
@RequestMapping(value = "/auth/login", method = GET)
public String showLoginForm(HttpServletRequest request, Principal principal) {
if(principal != null) {
return "redirect:/";
}
return "login";
}