現在、Tomcatのログインサポートは、ユーザーがログインしていないことをアプリケーションが判断したときの最初の場所にユーザーをリダイレクトします。
この特定のアプリケーションでは、常にに戻るように強制する必要がありますindex.jsp
。
これはWARの単純な構成オプションであると確信してweb.xml
いますが、Googleで答えを見つけられませんでした。
現在、Tomcatのログインサポートは、ユーザーがログインしていないことをアプリケーションが判断したときの最初の場所にユーザーをリダイレクトします。
この特定のアプリケーションでは、常にに戻るように強制する必要がありますindex.jsp
。
これはWARの単純な構成オプションであると確信してweb.xml
いますが、Googleで答えを見つけられませんでした。
より良い解決策は、おそらくサーブレット フィルターを使用することです。次に、j_username / j_password、およびログインの成功を確認し、目的の場所にリダイレクトできます。
これは、標準の一部ではないため、web.xml で構成できないものです。Tomcat (バージョン 6.0.14 でテスト済み) の場合、login.jsp の上に次のコードを追加することで、ユーザーを強制的に index.jsp に戻すことができます。URL に「login」という名前のパラメーターを持たないすべての要求を /index.jsp?login ページにリダイレクトします。リダイレクトには「login」パラメーターがあるため、ユーザーにはログイン ページが表示されます。
安全なソリューションではありません。誰かがページを要求してログイン パラメータを追加すると、リダイレクトされます。そう:
/showPerson?id=1234 は /index.jsp?login にリダイレクトします
/showPerson?id=1234?login は /index.jsp?login にリダイレクトされません
login.jsp の上にあるコード:
<%
if (request.getParameter("login") == null) {
response.sendRedirect(request.getContextPath() + "/index.jsp?login");
return;
}
%>
「ログイン」パラメーターを使用する代わりに、おそらく Cookie を使用できます。ログイン パラメータのランダムな値 (login=randomvalue) を作成し、その値を比較のためにセッション オブジェクトに保存することで、より安全にすることができます。