2012-12-27 20 views
1

前言:.NET開發人員,深入到Java/JBoss領域。相當於HTTPModule的JBoss

首先,如果這個問題是在這裏提出的,我很抱歉;但到目前爲止,我只能選擇一些零碎的信息。我真的很感激一些綜合信息。

我有一個用.NET編寫的正在進行的SSO項目,攔截所有HTTP請求(或基於MIME類型的特定集合),匹配一些預加載的緩存配置(應用程序)和狀態(會話/在用戶)數據並決定如何處理該請求 - 允許,拒絕或要求憑證。 (不幸的是,由於要求,我們無法選擇現成的解決方案。)

在IIS/.NET下,此功能由HTTP模塊處理,該模塊將自身插入到請求處理管道中並導出必要的操作甚至在應用程序本身被調用之前。它工作正常,但僅適用於ASP和ASP.NET應用程序;我們的下一個任務是讓它可用於Java應用程序,並專注於JBoss。

該文本的牆說,這裏是一個實際的問題:

有一個JBoss等同於我們目前使用的HTTP模塊功能 - 應用程序之前執行,但需要訪問會話/應用程序狀態,並能閱讀一些與應用程序本身一起存儲的一些XML配置文件?有沒有另外一種更好的方式來實現我們沒有關注的目標?

非常感謝你的時間。

回答

1

我想你是在Java/Java EE中使用HTTP Servlet過濾器。你可以谷歌HttpServlet過濾器的數百個示例實現和一個這樣的例子是在這article提供。您主要必須編寫一個實現Filter接口的類,然後在WEB-INF\web.xml文件中添加必要的配置(即過濾器將捕獲的請求類型以及過濾器本身的定義)。

此外,HttpServletFilters不僅限於JBoss,它是Java Servlet規範的一部分,因此可用於實現規範的任何容器(Weblogic,Websphere,Tomcat等)。

+0

我會研究它並檢查它是否覆蓋了所有必需的基礎(或者如果專門的實現是可行的)。感謝您提供直截了當的清晰答案 - 並且您有時間回覆。 – OnoSendai

+1

@OnoSendai - 不客氣。在使用ServletFilters之後,你應該能夠完成大部分的工作。您可以訪問請求,響應,並可以通過'request.getSession()'調用來訪問http會話。從那時起,這只是實施你的要求的問題。 – CoolBeans