0

GlassFish、策略代理、OpenAM、Spring 门户:

我有一项任务是阻止某些被阻止的用户访问访问管理器(用户通过使用门户被动态阻止),这样他们就无法连接到它并使 AM 过载。经过一番谷歌搜索后,我了解到我需要在 Policy Agent 步骤中阻止访问访问管理器(可能是我错了),我发现可以在 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>

问题:在这个过滤器之前真的不会连接到访问管理器吗?我怎样才能检查它?日志?

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 不得在同一个容器中运行。

通常,“访问管理器”执行身份验证......所以你可以阻止你不认识的人吗?要知道某人的身份验证必须执行。

不过,您可以详细解释您的用例。

于 2013-02-01T08:08:31.617 回答