2013-01-31 59 views
0

GlassFish中,策略代理,OpenAM,門戶網站上春:阻止連接到訪問管理器

我有個任務,以防止一些阻斷用戶訪問訪問管理器(用戶通過門戶動態阻塞),讓他們無法連接到它並超載AM。經過一些googleing,我明白我需要阻止訪問策略代理上的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> 

問:是不是真的將無法連接此過濾器之前,訪問管理器?我如何檢查它?日誌?

回答

1

過濾一個你可以做到以下幾點。

如果請求來自被阻止的用戶,那麼第一個過濾器本身可以轉到另一個錯誤頁面,如blockeduser.jsp,否則fwd過濾器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> 
0

如果'Access Manager'是OpenAM,那麼AgentFilter絕不能在同一個容器中運行。

通常'訪問管理器'執行身份驗證...所以你可以阻止你不認識的人?要知道某人的身份驗證必須執行。

雖然你可以詳細解釋你的用例。