kon*_*ski 5 servlets jsf-2 servlet-filters
我的部分网站只能由授权用户访问.假设用户输入属于仅授权部分的页面a.html.
如果我要使用servlets/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);
}
}
Run Code Online (Sandbox Code Playgroud)
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");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3388 次 |
| 最近记录: |