Java JSF中的用户表单身份验证

Java JSF中的用户表单身份验证,java,authentication,jsf,Java,Authentication,Jsf,我是JSF的新手,我有几个关于组织用户身份验证的问题 1) 如何将注册用户重定向到欢迎页面(例如welcome.xhtml)?我听说过使用过滤器或导航规则标签,但我没有找到一个完整的教程来说明它是如何工作的 2) 我如何告诉服务器,未经授权的用户不仅可以访问登录页面,还可以访问注册页面?是否有类似ASP.NET web.config标记或类似的内容?需求1)的解决方案已经由需求2)的解决方案实现。您只需让用户直接访问该URL即可。如果用户毕竟没有登录,则将其重定向到注册/登录页面。这就是它通常的

我是JSF的新手,我有几个关于组织用户身份验证的问题

1) 如何将注册用户重定向到欢迎页面(例如welcome.xhtml)?我听说过使用过滤器或导航规则标签,但我没有找到一个完整的教程来说明它是如何工作的


2) 我如何告诉服务器,未经授权的用户不仅可以访问登录页面,还可以访问注册页面?是否有类似ASP.NET web.config标记或类似的内容?

需求1)的解决方案已经由需求2)的解决方案实现。您只需让用户直接访问该URL即可。如果用户毕竟没有登录,则将其重定向到注册/登录页面。这就是它通常的工作方式

您需要实现一个
过滤器
,它侦听与安全页面匹配的
url模式
。例如,
/secured/*
/protected/*
等。在
doFilter()
方法中,您只需检查当前会话中是否存在登录的
用户
,并进行相应的处理。以下是一个基本的启动示例:

if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
    // Not logged in, redirect to login page.
    response.sendRedirect("login.jsf");
} else {
    // Logged in, just continue with request.
    chain.doFilter(request, response);
}

要让它与JSF一起工作,只需知道JSF将会话范围内的托管bean存储为
HttpSession
的属性,并将托管bean名称作为键。

答案取决于您对用户进行身份验证的准确程度。容器管理或webapp(国产)管理?webapp。我的任务只是在JSF中创建一个示例站点,该站点能够注册用户并使用mysql数据库中存储的用户数据将用户登录到某个“helloworld”页面。如果像我一样,您正在寻找一个完整的
过滤器
示例,请查看以下链接:。本文演示了如何使用JSF轻松创建身份验证场景。