0

GlassFish、ポリシー エージェント、OpenAM、Spring のポータル:

一部のブロックされたユーザー (ユーザーはポータルを使用して動的にブロックされます) からアクセス マネージャーにアクセスできないようにするタスクがあります。ポリシーエージェントのステップでアクセスマネージャーへのアクセスを防ぐ必要があることを理解した後(間違っている可能性があります)、web.xmlにフィルターを追加できることがわかりました。

そこで、ブロックされたユーザーを別のページにリダイレクトするカスタム フィルターを追加します。

<filter>
    <filter-name>denyBlockedUsers</filter-name>
    <filter-class>some.portal.servlets.DenyBlockedUsers</filter-class>
</filter>

<filter-mapping>
    <filter-name>denyBlockedUsers</filter-name>
    <url-pattern>/locked/*</url-pattern>
</filter-mapping>

すべて正常に動作します。

AMの場合、フィルターがあります:

<filter>
    <filter-name>Agent</filter-name>
    <filter-class>com.sun.identity.agents.filter.AmAgentFilter</filter-class>
</filter>

質問: このフィルタの前に Access Manager に接続しないのは本当ですか? どうすれば確認できますか?ログ?

4

2 に答える 2

1

次のことができるものをフィルタリングします。

要求がブロックされたユーザーからのものである場合、最初のフィルター自体は、blockeduser.jsp などの別のエラー ページに転送できます。それ以外の場合は、フィルター 2 (/agent/*) に転送できます。

<filter>
    <filter-name>
      denyBlockedUsers
    </filter-name>
    <filter-class>
      some.portal.servlets.DenyBlockedUsers
    </filter-class>
  </filter>

  <filter>
    <filter-name>
      Agent
    </filter-name>
    <filter-class>
      com.filters.Filter2
    </filter-class>
  </filter>


  <!-- Map the filter to a Servlet or URL -->

  <filter-mapping>
    <filter-name>
      denyBlockedUsers
    </filter-name>
    <url-pattern>
      /locked/*
    </url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>
      Agent
    </filter-name>
    <url-pattern>
      /agent/*
    </url-pattern>
  </filter-mapping>
于 2013-01-31T11:16:23.000 に答える
0

「Access Manager」が OpenAM の場合、AgentFilter を同じコンテナーで実行してはなりません。

通常、「Access Manager」が認証を実行します...だから、知らない人をブロックできますか? 誰かの身元認証を実行する必要があることを知るには。

ただし、ユースケースを詳細に説明することはできます。

于 2013-02-01T08:08:31.617 に答える