ログイン後に常に Index.jsp にアクセスするように Tomcat を設定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/134263

  •  02-07-2019
  •  | 
  •  

質問

現在、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) を作成し、比較のためにその値をセッション オブジェクトに保存することで、セキュリティを強化できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top