我的网站的一部分应该只能由授权用户访问。假设用户将进入属于仅授权部分的页面a.html。
如果我要使用 servlet/JSP,我可以编写一个过滤器来检查用户是否登录,如果没有,则将他重定向到登录页面。成功登录后,用户将被重定向到他最初想要访问的页面,在本例中为 a.html。 (页面地址可以存储在请求中)。
在 JSF 2.0 中实现这种场景的正确方法是什么?
只需以同样的方式进行,使用Filter
。很高兴知道 JSF 会话范围的托管 bean 是在幕后存储为HttpSession
以托管 bean 名称作为键的属性。
假设您有一个像这样的托管 bean:
@ManagedBean
@SessionScoped
public class UserManager {
private User user;
// ...
public boolean isLoggedIn() {
return (user != null);
}
}
然后你就可以签入了Filter#doFilter()
如下:
UserManager userManager = (UserManager) ((HttpServletRequest) request).getSession().getAttribute("userManager");
if (userManager != null && userManager.isLoggedIn()) {
chain.doFilter(request, response);
} else {
((HttpServletResponse) response).sendRedirect("login.xhtml");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)