ログイン後に常に Index.jsp にアクセスするように Tomcat を設定するにはどうすればよいですか?
質問
現在、Tomcat のログイン サポートは、ユーザーがログインしていないことをアプリケーションが認識したときの最初の場所にユーザーをリダイレクトします。
この特定のアプリケーションでは、常に強制的に戻るようにする必要があります。 index.jsp
.
これは WAR の単純な設定オプションであると確信しています。 web.xml
, 、しかし、グーグルで答えが見つかりませんでした。
解決
より良い解決策は、おそらくサーブレット フィルターを使用することです。次に、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;
}
%>
「login」パラメータを使用する代わりに、Cookie を使用することもできます。ログイン パラメータのランダムな値 (login=randomvalue) を作成し、比較のためにその値をセッション オブジェクトに保存することで、セキュリティを強化できます。