用户在JSF中进行身份验证

时间:2010-05-23 11:54:45

标签: java authentication jsf

我是JSF的新手,我在那里有一些关于组织用户身份验证的问题。

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

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

1 个答案:

答案 0 :(得分:2)

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

您需要实现一个Filter来监听与url-pattern匹配的安全页面。例如。 /secured/*/protected/*等。在doFilter()方法中,您只需检查当前会话中是否存在已登录的User并进行相应处理。这是一个基本的启动示例:

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名称作为密钥。