0

ユーザーが1つのブラウザから別のブラウザにリンクをコピーして貼り付けるときに、ユーザーを「ホームページ」に制限する方法...つまり

ユーザーが私のプロジェクト「localhost:8080 / MyJavaProjectV1.0/Admin_GetTokenId.jsp」のリンクをInternetExplorerからコピーしたとき

chromeに貼り付けます。ユーザーをホームページに制限したいです。

4

4 に答える 4

1

ホームページへの各リクエストをフィルタリングし、リクエストがサーブするように認証されているかどうかをチェックするサーブレットフィルタを追加します-サーブ、そうでない場合は制限します


も参照してください

于 2012-10-12T17:39:13.703 に答える
1

ログインが認証用に構成されているアプリサーバーを使用している場合は、ファイル内Loginのページを除くすべてのURLパターンを保護するだけです。ユーザーが認証なしで「ログイン」ページ以外のURL(またはより安全でないURL)にアクセスしようとすると、デフォルトでページが表示されます。。構成は次のようになります。web.xmlLogin

<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

上記のいずれにも該当しない場合は、リクエストフィルタを設定し、ユーザーを確認して、ユーザーが認証されていない場合はログインページにリダイレクトします。

于 2012-10-12T17:46:10.923 に答える
1

ユーザーがログインした後のすべてのjspページで、セッションにユーザー名を保存し、次のようにすべてのページにユーザー名を表示しています...

hai  <%= ss.getAttribute("username")%>  

これで、そのユーザー名セッションを使用して、ユーザー名がnullか空かを確認しました。nullの場合(つまり、リンクがコピーされて他のブラウザーに貼り付けられた場合)、ログインページにリダイレクトします。

if(ss.getAttribute("username")==null || ss.getAttribute("username")=="")
{
    response.sendRedirect("loginpage.jsp");
}
于 2012-10-19T12:06:18.117 に答える
0

何らかの認証があるかどうかという問題は明確ではありません。これが認証とは関係がないと仮定すると、1つの解決策は、リファラーhttp://en.wikipedia.org/wiki/HTTP_referrerと呼ばれるhttpヘッダーを調べることです。 リファラーヘッダーには、以前にユーザーが使用したページに関する情報が含まれます。

リファラーをチェックするサーブレットフィルターを作成できます。記事にアクセスする際は、リファラーヘッダーを確認してください。ホームページではないページやウェブサイトがある場合、またはリファラーが空白の場合は、ユーザーをホームページに転送します。それ以外の場合は、ユーザーをリクエストしたページに移動します。

于 2012-10-12T17:48:00.527 に答える