阻止与Access Manager的连接

时间:2013-01-31 10:49:54

标签: spring servlet-filters web.xml openam

GlassFish,Policy Agent,OpenAM,Spring on Spring:

我有一项任务是阻止某些被阻止的用户访问Access Manager(用户通过使用门户网站动态阻止),这样他们就无法连接到它并使AM过载。在一些googleing之后,我明白我需要阻止在Policy Agent步骤访问Access Manager(可能是我错了),我发现可以在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吗?我怎么检查呢?日志?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

如果'Access Manager'是OpenAM,那么AgentFilter绝不能在同一个容器中运行。

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

你可以详细解释一下你的用例。