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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top