Come posso configurare Tomcat per indirizzare sempre a index.jsp dopo il login?
Domanda
Attualmente il supporto per l'accesso di Tomcat reindirizza gli utenti a dove erano inizialmente quando l'applicazione ha scoperto che non avevano effettuato l'accesso.
Per questa particolare applicazione, devo forzarli a tornare sempre a index.jsp
.
Sono abbastanza sicuro che questa sia una semplice opzione di configurazione nel web.xml
di WAR, ma non ho trovato la risposta in google.
Soluzione
Una soluzione migliore sarebbe probabilmente quella di utilizzare un filtro servlet. È quindi possibile controllare j_username / j_password e accedere correttamente e reindirizzarli dove si desidera che vadano.
Altri suggerimenti
È qualcosa che non puoi configurare in web.xml in quanto non fa parte dello standard. Per Tomcat (testato sulla versione 6.0.14) è possibile forzare gli utenti a index.jsp aggiungendo il codice successivo sopra login.jsp. Reindirizza ogni richiesta che non ha un parametro con il nome "login" nell'URL alla pagina /index.jsp?login. Poiché il reindirizzamento ha il parametro 'login', all'utente verrà presentata la pagina di login.
Non è una soluzione sicura. Se qualcuno richiede una pagina e aggiunge il parametro di accesso, verrà reindirizzato. Quindi:
/ showPerson? id = 1234 reindirizzerà a /index.jsp?login
/ showPerson? id = 1234? login NON reindirizzerà a /index.jsp?login
Il codice che va oltre il tuo login.jsp:
<%
if (request.getParameter("login") == null) {
response.sendRedirect(request.getContextPath() + "/index.jsp?login");
return;
}
%>
Invece di usare il parametro 'login' probabilmente potresti usare un cookie. Puoi renderlo più sicuro creando un valore casuale per il parametro login (login = randomvalue) e archiviare il valore nell'oggetto sessione per il confronto.