特定のユーザーへのJSP/サーブレットアクセスを制限します
-
01-10-2019 - |
質問
私はWebアプリを開発しています。友達にそれを見てもらえたいのですが、URLにつまずく他の人はそうしません。ランディングページを配置してから、シンプルなパスワードボックスを配置しました。正しいパスワードが入力されたら、セッションに記録し、ブラウザを開いたままにしておく時間の間、通常どおりサイトを公開します。
これを行う標準的な方法はありますか?これをサポートするためにWebAppに追加のコードを追加することになります。すでにそれを行う方法が組み込まれているかどうかはわかりません(Javaサーブレットを使用しています)。
ありがとう
解決
使用できます 展開記述子を使用したコンテナ管理認証. 。これには、URLに提出する入力とパスワードフィールドを備えた単純なログインフォームを期待する追加のコードがあなたの側に必要ではありません j_security_check
. 。これが基本的な例です。
<form action="j_security_check" method="post">
<input type="text" name="j_username">
<input type="password" name="j_password">
<input type="submit">
</form>
名前付きのフォルダー内のプライベートページであると仮定します /private
上記のログインページはあります /private/login.jsp
, 、次のエントリをWebAppに追加します web.xml
:
<security-constraint>
<web-resource-collection>
<web-resource-name>Private</web-resource-name>
<url-pattern>/private/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>friends</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Private</realm-name>
<form-login-config>
<form-login-page>/private/login.jsp</form-login-page>
<form-error-page>/private/error.jsp</form-error-page>
</form-login-config>
</login-config>
次に、使用しているServletContainerでは、いわゆる構成をする必要があります 領域 にとって Private
. 。どのServletContainerを使用しているかは不明であるため、Tomcat 8.0のターゲットドキュメントは次のとおりです。 レルム構成ハウツー. 。 XMLファイル、データベース、またはカスタム場所に対してユーザー名/パスワードコンボを確認するように構成できます。
まったく異なる代替手段は、ログインメカニズムをホームグローで支援することです。 Filter
セッション範囲内のログインユーザーの存在をチェックします。見る これ と これ これを達成する方法に答えてください。
他のヒント
htaccessを使用して簡単な認証を使用することを検討する必要があります
見る http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/