Raj*_*lli 3 jsf redirect login
我正在开发一个JSF应用程序。仅适用于授权用户。
因此,每当有人尝试通过URL访问任何页面时,都应重定向到Login。
我正在使用XHTML作为前端。并使用JSF框架。
我将Session Bean存储在Login Bean中。
不幸的是,我使用了Servlet和静态页面“ response.sendRedirect()”。
提前致谢。
我认为一种解决方案是将所有页面都放在WEB-INF中,但是一个问题是我正在使用resonse.sendRedirect(),而且我正在使用带有facelets的模板。
请给我建议。
文件夹中的“我的登录”页面
"/Common/Login.xhtml"
和一些页面
"/Admin/*.xhtml"
Run Code Online (Sandbox Code Playgroud)
和一些页面
`"Employee/*.ahtml"`
Run Code Online (Sandbox Code Playgroud)
如何为这2个文件夹Admin和Employee设置筛选器
我给了像这样,但要求不要加入Filter Servlet
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/faces/Admin/*</url-pattern>
<url-pattern>/faces/Employee/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>`
Run Code Online (Sandbox Code Playgroud)
如果我这样给
<url-pattern>/*</url-pattern>
Run Code Online (Sandbox Code Playgroud)
它会进入无限循环,请为此问题提供解决方案
我解决了这个问题。我的过滤器映射
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
和我的过滤器类
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
System.out.println("Entered intop Login Filter");
HttpServletRequest req = (HttpServletRequest) request;
LoginBean login = (LoginBean) req.getSession().getAttribute("login");
String path = req.getRequestURI().substring(req.getContextPath().length());
System.out.println("path:" + path);
if (path.contains("/Admin/") || path.contains("/Employee/")) {
if (login != null) {
if (login.getUsername() != null && !login.getUsername().equals("")) {
chain.doFilter(request, response);
} else {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("/EMS2/faces/Html/Common/Login.xhtml");
}
} else {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("/EMS2/faces/Html/Common/Login.xhtml");
}
} else {
chain.doFilter(request, response);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7158 次 |
| 最近记录: |