Sto provando a fare questo: Make spring security add the return to url in the query string for the login page, ovvero: prendi molla per dire alla pagina di accesso da dove vengo. Ho un po 'di integrazione SSO .. quindi gli invierò l'url, o aggiungeranno il referer per me, quindi so che l'utente deve essere loggato e inviato a /some/url
. È tutto dandy. Il problema che sto riscontrando è estendere LoginUrlAuthenticationEntryPoint
(a meno che tu non possa dirmi una buona ragione per implementare invece AuthenticationEntryPoint
). Ho bisogno di modificare solo le richieste alla pagina di login, in questo modo:come estendere LoginUrlAuthenticationEntryPoint o come implementare AuthenticationEntryPoint
RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
// only append returnto to '/login' urls
if(request.getServletPath() == "/login") {
// indicates we want to return to this page after login
redirectStrategy.sendRedirect(request, response, "/login?returnto=" + request.getServletPath());
}
Come posso lasciare che il resto delle richieste fare le loro cose? Questo non è corretto (quello che stavo facendo):
RequestDispatcher dispatcher = request.getRequestDispatcher("/login");
// just forward the request
dispatcher.forward(request, response);
perché ci mette in un ciclo di reindirizzamento. Tuttavia sembra essere what spring does in its version of commence
. Non ho capito bene. Cosa dovrei fare con lo commence
nella mia estensione personalizzata su LoginUrlAuthenticationEntryPoint
?