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吗?我怎么检查呢?日志?
答案 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绝不能在同一个容器中运行。
通常,“访问管理器”执行身份验证...所以你可以阻止你不认识的人吗?要知道某人的身份认证必须执行。
你可以详细解释一下你的用例。