1

私はjsfアプリケーション(j_security)でコンテナベースのセキュリティを使用しており、glassfishを使用して保護されたページのユーザーを認証しています。ただし、アプリケーション内には、ユーザーがログインしている場合でもパスワードを再入力する必要がある、より制限されたページがあります。セッションが既にライブであるため、複数の制約を作成しても役に立ちません。

これはどのように達成できますか?

4

1 に答える 1

1

セッションフラグを参照して、ユーザーがすでに2回認証されているかどうかを確認できる「SecondAuth」というサーブレットフィルターを使用できます。そうでない場合は、2 番目の認証ページにリダイレクトできます。要求された URL をセッション変数に保存することを忘れないでください。ユーザーが再度認証に成功すると、要求されたページにリダイレクトできます。

以下のように、web.xml 構成を使用して複数のページを保護できます。

web.xml

<filter>
    <filter-name>secondauth</filter-name>
    <filter-class>com.auth.SecondAuth</filter-class>
</filter>
<filter-mapping>
    <filter-name>secondauth</filter-name>
    <url-pattern>/app/secure1.jsp</url-pattern>
    <url-pattern>/app/secure2.jsp</url-pattern>
</filter-mapping>

サーブレット フィルターの使用方法については、Java でサーブレット フィルターを使用して着信サーブレット リクエスト URL を変更する方法を参照してください。

于 2013-05-11T09:02:01.137 に答える