2013-03-30 167 views
0

我正在嘗試向以前構建的Web應用程序添加新功能。該應用程序使用j_security_check。我想使用其他單點登錄服務登錄到應用程序。最佳做法是什麼?通過傳遞J_security_check

P.S.我看不到j_security_check在哪裏檢查用戶名和密碼。任何幫助,將不勝感激。

編輯:實際上我想要做的就是使用另一個sso服務來登錄到j_security_check。另一個SSO系統是另一個我們的應用程序。用戶登錄到該應用程序,並且該應用程序向我發送令牌。在它發佈令牌之後,我可以獲得登錄的用戶ID。

謝謝!

+0

可能重複[?我在哪裏可以找到 「J□\ _security \ _check」(http://stackoverflow.com/questions/ 10723138 /哪裏可以找到j安全檢查) –

+0

*「最佳做法是什麼?」* - 沒有使用「另一個」SSO系統的最佳做法。您選擇符合您要求的SSO系統,然後執行它。如果你真的在尋求建議,那不是問題所在。 –

回答

1

j_security_checkRealm是一種方式,web容器或tomcat檢查登錄本身! 如果您在META-INF文件中檢查配置文件tomcatcontext.xml中的server.xml,可以看到Realm標籤,其中顯示了Realm如何檢查登錄功能。

在應用程序中,您不能使用Realm多次。如果你想實現另一個單一登錄,你應該自己實現它。但我不知道你爲什麼要實現兩個單一登錄!這真的很奇怪!

我認爲最好的辦法是把出頭的session和檢查,以確保用戶在登錄。

正如你說,有太多的網頁和處理這類項目真的很難,我建議您使用Front Controller模式或Facade設計模式。您只能在Front Controller中查看會話。 你可以在這裏閱讀更多:

http://en.wikipedia.org/wiki/Front_Controller_pattern

http://java.dzone.com/articles/understanding-front-controller http://www.allapplabs.com/j2ee_design_patterns/j2ee_design_patterns_front_controller.htm

+0

首先感謝您的回答。系統是這樣的:用戶登錄到另一個Web應用程序。這個應用程序給我發一個令牌。我可以通過使用此令牌和Web服務來獲取用戶信息。獲取令牌後,我想讓用戶登錄到j_security_check。在應用程序中有數百頁。在每個頁面中檢查登錄用戶的上下文。如果我不這樣做,我必須改變每一頁。我試圖找出需要較少負擔的解決方案。 –

+1

用戶應該登錄到應用程序和您的應用程序之間的關係是什麼?他們都在同一個網絡應用程序? – boomz

+0

不,他們完全分開。它是一項全國範圍的服務,使公民能夠使用其國家身份證號登錄一些政府服務。登錄後我的申請可以檢索一些其他公民信息。這使我們使用並始終更新關於用戶的信息數據庫。如果我們能夠管理,我們不需要從頭開始創建用戶數據庫。 –