ユーザーが1つのブラウザから別のブラウザにリンクをコピーして貼り付けるときに、ユーザーを「ホームページ」に制限する方法...つまり
ユーザーが私のプロジェクト「localhost:8080 / MyJavaProjectV1.0/Admin_GetTokenId.jsp」のリンクをInternetExplorerからコピーしたとき
と
chromeに貼り付けます。ユーザーをホームページに制限したいです。
ホームページへの各リクエストをフィルタリングし、リクエストがサーブするように認証されているかどうかをチェックするサーブレットフィルタを追加します-サーブ、そうでない場合は制限します
も参照してください
ログインが認証用に構成されているアプリサーバーを使用している場合は、ファイル内Login
のページを除くすべてのURLパターンを保護するだけです。ユーザーが認証なしで「ログイン」ページ以外のURL(またはより安全でないURL)にアクセスしようとすると、デフォルトでページが表示されます。。構成は次のようになります。web.xml
Login
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Sample Security Realm</realm-name>
</login-config>
<security-role><role-name>admin</role-name></security-role>
<security-role><role-name>user</role-name></security-role>
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<!-- Mention your URL pattern here for admin access check>
<url-pattern>/admin/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>User</web-resource-name>
<!-- Mention your URL pattern here for standard user access check>
<url-pattern>/user/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
アプリサーバーを使用しておらず、apache
アプリケーションのフロントエンドなどのウェブサーバーを使用している場合は、認証メカニズムでApacheのセキュリティプラグインを使用してSiteminder
くださいApache
。
上記のいずれにも該当しない場合は、リクエストフィルタを設定し、ユーザーを確認して、ユーザーが認証されていない場合はログインページにリダイレクトします。
ユーザーがログインした後のすべてのjspページで、セッションにユーザー名を保存し、次のようにすべてのページにユーザー名を表示しています...
hai <%= ss.getAttribute("username")%>
これで、そのユーザー名セッションを使用して、ユーザー名がnullか空かを確認しました。nullの場合(つまり、リンクがコピーされて他のブラウザーに貼り付けられた場合)、ログインページにリダイレクトします。
if(ss.getAttribute("username")==null || ss.getAttribute("username")=="")
{
response.sendRedirect("loginpage.jsp");
}
何らかの認証があるかどうかという問題は明確ではありません。これが認証とは関係がないと仮定すると、1つの解決策は、リファラーhttp://en.wikipedia.org/wiki/HTTP_referrerと呼ばれるhttpヘッダーを調べることです。 リファラーヘッダーには、以前にユーザーが使用したページに関する情報が含まれます。
リファラーをチェックするサーブレットフィルターを作成できます。記事にアクセスする際は、リファラーヘッダーを確認してください。ホームページではないページやウェブサイトがある場合、またはリファラーが空白の場合は、ユーザーをホームページに転送します。それ以外の場合は、ユーザーをリクエストしたページに移動します。