2010-07-24 38 views
3

我已經實現了一個使用openid4java庫執行OpenID登錄認證所需操作的服務。如何將OpenID登錄認證實現(Java)與JBoss集成

應用的流量是有些人認爲像如下

  1. 從用戶使用的OpenID
  2. JSP頁面的行爲的servlet
  3. 的Servlet獲取OpenID的參數JSP頁面,與服務進行交互,以獲得所需的信息將用戶重定向到實際的OpenID提供商進行認證。
  4. 提供給OpenID提供者的返回URL是另一個servlet。
  5. 此servlet檢索開放id提供程序發送的響應所需的信息,然後與該服務交互以檢查用戶是否由開放id提供程序進行身份驗證。
  6. 如果用戶通過身份驗證,它將servlet重定向到主頁。

如果妳已經明白我的實現方法請別人招待我的以下疑問,請讓我知道,讓我把更多的精力,使其理解

查詢 我使用JBoss 5應用服務器。在上面的代碼中,如果用戶通過身份驗證,我只是簡單地獲取信息,但是我需要通知jboss一些如何允許用戶訪問受限資源,即查看網頁。

通常我們使用自定義登錄模塊類,它繼承org.jboss.security.auth.spi.UsernamePasswordLoginModule用於基於數據庫的身份驗證(調用服務方法以獲取數據庫身份驗證信息)。但是在這種情況下,我需要servlet充當服務,用戶和OpenID提供者之間的通信通道。所以我應該如何整合servlet和登錄模塊實現。

我可能會面臨的另一個問題是,我正在使用兩個已實施的servlet之間的會話來存儲和檢索DiscoveryInformation對象。我認爲,會議將無法訪問,直到用戶沒有登錄

我下面

實現方法是基於文章http://www.theserverside.com/news/1364125/Using-OpenID

請幫我 感謝

回答

0

有東西在你的情況下丟失:是openid唯一的方法來驗證或用戶也有用戶名和密碼?在第一種情況下,您可以重構自定義登錄名以擴展AbstractServerLoginModule並傳遞openId帳戶信息。否則,你只需要鏈接兩個認證系統。

對於會話問題,一切都應該是正常的,因爲會話開始時,瀏覽器首次訪問服務器並且繼續進行時,由於不活動或程序設置重置,所以它會出現故障。