我正在开发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 Active Directory身份验证
- 2. JSF 2.0身份验证
- 3. JSF身份验证注销
- 4. JSF Facebook身份验证
- 5. JSF身份验证和授权
- 6. doFilter JSF用户身份验证
- 7. JSF 2和基本HTTP身份验证
- 8. SpringSecurity + JSF自定义身份验证
- 9. JSF表单身份验证+ OAuth
- 10. SOAP身份验证
- 11. SaaS身份验证
- 12. Django - 身份验证
- 13. Orchard:Facebook身份验证
- 14. ASP.NET身份验证
- 15. DotVVM身份验证
- 16. Datapower身份验证
- 17. Kerberos身份验证
- 18. SSRS身份验证
- 19. MiniTest身份验证
- 20. joomla:身份验证
- 21. Nagios身份验证
- 22. Vagrant身份验证
- 23. AngularJS身份验证
- 24. WebSeal身份验证
- 25. Smtp身份验证
- 26. OpenAm身份验证
- 27. WebView身份验证
- 28. jquery身份验证
- 29. Python身份验证
- 30. Milton.io身份验证
供参考:拼写为“认证”而不是“认证”。 – 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