Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF认证_Java_Authentication_Web Applications_Jsf_Jsf 2 - Fatal编程技术网

Java JSF认证

Java JSF认证,java,authentication,web-applications,jsf,jsf-2,Java,Authentication,Web Applications,Jsf,Jsf 2,我正在开发一个JavaEE应用程序(JSF2+richfaces+Facelets+Tomcat)。 使用JSF执行身份验证的最佳方式是什么? 还是我应该自己做呢?去做吧 就是如何将它与JSF集成 编辑: 人们通常在以下两者之间进行选择(无特定顺序): JAAS(即Java/JavaEE默认安全框架) 春季安全性 定制安全性 我从未使用过SpringSecurity,但文档非常丰富,因为时间限制,我放弃了尝试一次。JAA的优点是简单,并且可以使用Tomcat开箱即用 我也见过在JAAS之上构建的

我正在开发一个JavaEE应用程序(JSF2+richfaces+Facelets+Tomcat)。 使用JSF执行身份验证的最佳方式是什么? 还是我应该自己做呢?

去做吧

就是如何将它与JSF集成

编辑:


人们通常在以下两者之间进行选择(无特定顺序):

JAAS(即Java/JavaEE默认安全框架)
春季安全性
定制安全性

我从未使用过SpringSecurity,但文档非常丰富,因为时间限制,我放弃了尝试一次。JAA的优点是简单,并且可以使用Tomcat开箱即用

我也见过在JAAS之上构建的自定义安全性

您真正需要做的是找出您在应用程序中特别需要什么,并检查哪个框架更适合您的需要


在不了解您的业务需求的情况下,如果您只需要身份验证(用户登录),我会说JAAS是最简单的方式,因为它不会侵入应用程序,如果您还没有使用它,您就不需要添加Spring依赖项。

JBoss Seam将EJB3、Facelets、JSF和hibernate集成得非常好。还提供数据验证和一些安全功能。如果你使用它的所有功能,它真的很甜。如果你试着从中挑选某些东西,那么它仍然很酷,但是你有一些解决办法。但我对我所看到的SEAM印象深刻。

除了上述框架之外,还有SEAM安全性,它通过扩展与CDI集成得很好。

< P>我认为列奥纳多是正确回答的,但是你也可以考虑全企业的安全性。配置起来有点复杂,但好处是巨大的。它还支持从LDAP到NTLM的大量现成的身份验证机制。CAS还提供自定义身份验证的扩展

如果您选择使用JavaEE容器,并且希望使用基于表单的身份验证,那么我已经发布了几个示例,用于JSF1.2和2.0以及j_安全检查


此外,Servlet 3.0 API通过API提供基于容器的登录和身份验证。

您可以尝试Apache Shiro,它提供身份验证、授权和许多其他功能。

对于简单身份验证,一种非常简单的方法是使用JSTL检查模板中的有效用户对象,如果没有,则显示登录表单。 对于exmaple,假设您的模板是
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>

.
.
.
. 已验证的模板部分位于此处
.

优点:零依赖性和零配置,如果会话过期,在登录后,用户将返回到他所在的原始页面。

我使用的是JSF 2,但这个项目是针对JSF 1.2FYI的:拼写为“身份验证”而不是“身份验证”.请注意,JAAS本身不是Java EE默认安全框架。JAAS是java SE中发现的一个安全基础,但它没有详细说明它如何与java EE安全概念相对应,而这些概念实际上有时是完全不同的。有关更多详细信息,请参见: