我是JSF的新手,我在那里有一些关于组织用户身份验证的问题。
1)如何将注册用户重定向到欢迎页面(例如welcome.xhtml)?我听说过使用过滤器或导航规则标签,但我没有找到一个完整的教程如何工作。
2)如何告诉服务器未授权用户不仅可以访问登录页面,还可以访问注册页面?是否有ASP.NET web.config标签的模拟或类似的东西?
答案 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名称作为密钥。