我正在開發Java EE應用程序(JSF2 + richfaces + Facelets + Tomcat)。 使用JSF時執行驗證的最佳方式是什麼? 還是應該讓我自己做?JSF身份驗證
JSF身份驗證
回答
人們通常之間挑選(排名不分先後):
JAAS (這是Java/Java EE默認安全框架)
春季安全
定製安全
我從來沒有使用Spring Security的,但文件是巨大的,我放棄了,一旦因爲時間的約束。 JAAS具有簡單的優點,並且可以與Tomcat一起使用。
我也看到了構建在JAAS之上的自定義安全性。
你真正需要做的是找出你將在你的應用程序中特別需要的東西,並檢查最適合你需求的框架。如果你只需要身份驗證(用戶登錄),我會說JAAS是最簡單的方法,因爲它不是應用程序入侵,如果你還沒有使用,你不需要添加Spring依賴關係它。
請注意,JAAS本身是***不是一個Java EE默認安全框架。 JAAS是Java SE中的一個安全性基礎,但並未詳細說明它與Java EE安全性概念的對應關係,而這些概念實際上有時會有很大不同。有關更多詳細信息,請參閱:http://java.sys-con.com/node/1002315 – 2013-04-15 06:57:30
我使用JSF 2,但這個項目是爲JSF 1.2 – mohamida 2010-09-20 12:21:22
@mohamida編輯答案 – 2010-09-20 12:35:10
它將幾乎相同。 – 2010-09-20 12:46:41
JBoss Seam非常好地集成了EJB 3,Facelets,JSF和hibernate。還提供數據驗證和一些安全性的東西。如果你使用它的所有功能,它真的很甜蜜。如果你試圖從中選擇一些特定的東西,那麼它仍然很酷,但是你有幾個解決方法。但是我對Seam迄今爲止所看到的東西印象深刻。
除了上述框架外,還有Seam Security通過擴展與CDI很好地集成。
我認爲萊昂納多回答正確,但您也可以考慮Central Authentication Service(CAS)企業安全。配置稍微複雜一些,但好處是巨大的。它還支持從LDAP到NTLM的大量現成的認證機制。 CAS還提供了自定義身份驗證的擴展。
如果您選擇使用Java EE容器,並希望使用基於表單的身份驗證,我已經出版了幾個例子爲使用JSF 1.2和2.0以及j_security_check
- JSF 1.2 Facelets Form Based Authentication (j_security_check)
- JSF 2.x Facelets Form Based Authentication (j_security_check)
此外,Servlet 3.0 API還提供基於容器的登錄和身份驗證,通過HttpServletRequest API。
links for integrate spring security此鏈接提供瞭如何將spring與jsf1.2集成的代碼。
您可以嘗試Apache Shiro,它提供身份驗證,授權等許多功能。
對於簡單驗證,一個非常簡單的方法是使用JSTL檢查模板中的有效用戶對象,如果不是,則顯示登錄表單。 爲〔實施例,假設你的模板是webapp/WEB-INF/templates/default.xhtml
,在模板中:
<html...>
.
.
<h:body>
<c:if test="#{mbSecurity.validUser}">
.
. authenticated template sections goes here
.
</c:if>
<c:if test="#{not mbSecurity.validUser}">
<ui:include src="/WEB-INF/inc/login-form.xhtml" />
</c:if>
</h:body>
</html>
優勢:零隻依賴&零配置,也如果會話過期,在登錄後,用戶將返回到原來的網頁,其中他在。
- 1. JSF 2.0身份驗證
- 2. JSF身份驗證和授權
- 3. JSF 2和基本HTTP身份驗證
- 4. doFilter JSF用戶身份驗證
- 5. OWIN身份驗證
- 6. Orchard:Facebook身份驗證
- 7. DotVVM身份驗證
- 8. SaaS身份驗證
- 9. WCF身份驗證
- 10. OpenLDAP身份驗證
- 11. Vagrant身份驗證
- 12. SWFUpload身份驗證
- 13. Webservice身份驗證
- 14. Firebase身份驗證
- 15. Mongo身份驗證
- 16. ExtJS身份驗證
- 17. WCF身份驗證
- 18. SOAP身份驗證
- 19. 身份驗證base64
- 20. Rails身份驗證
- 21. Smtp身份驗證
- 22. SymbolSource身份驗證
- 23. WCF身份驗證
- 24. Django - 身份驗證
- 25. umbraco身份驗證
- 26. 身份驗證Cookie
- 27. Mongodb身份驗證
- 28. Nagios身份驗證
- 29. 身份驗證Android
- 30. ajax身份驗證
供參考:拼寫爲「認證」而不是「認證」。 – Migol 2010-09-20 12:36:11
更正了它... – 2010-09-20 13:08:01
重複的http://stackoverflow.com/questions/9965708 – BalusC 2016-06-07 07:26:34