我的网站包含两种类型的用户,即用户和管理员。我试图限制用户访问管理控制页面,我尝试在doFilter()
内执行此操作:
System.out.print("\nNumber of objects constructed:->" + Counter.show() + "\n\n");
String path = req.getRequestURI().substring(req.getContextPath().length());
if (path.startsWith("/faces/xadmin.xhtml") && !JloginDAO.per.equals("admin")) {
res.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
if (path.startsWith("/faces/calendar.xhtml") && !JloginDAO.per.equals("admin")) {
res.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
但它不起作用,并且没有错误显示!
的web.xml
<display-name>web2</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>DisplayImage</display-name>
<servlet-name>DisplayImage</servlet-name>
<servlet-class>calender.DisplayImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayImage</servlet-name>
<url-pattern>/DisplayImage</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>PrivateDisplayImage</display-name>
<servlet-name>PrivateDisplayImage</servlet-name>
<servlet-class>displayCalendar.PrivateDisplayImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PrivateDisplayImage</servlet-name>
<url-pattern>/PrivateDisplayImage</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>PublicDisplayImage</display-name>
<servlet-name>PublicDisplayImage</servlet-name>
<servlet-class>public_display_Calendar.PublicDisplayImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PublicDisplayImage</servlet-name>
<url-pattern>/PublicDisplayImage</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>10240</param-value> <!-- 10 Mb -->
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
</web-app>
有什么想法吗?
答案 0 :(得分:1)
确保您的网址格式如下:
<url-pattern>*.xhtml</url-pattern>
和你的webfilter一样
@WebFilter(filterName = "AuthFilter", urlPatterns = {"*.xhtml"})
您的代码从未被调用,因为它在try {}旁边,请确保您的代码在req定义下。