Ресурсы RichFaces также передаются через FacesServlet
и, следовательно, также через ваш фильтр безопасности.Вам нужно добавить дополнительную проверку if
, чтобы обойти запросы ресурсов (читай: CSS / JS / запросы изображений, выполняемые <h:outputStylesheet>
, <h:outputScript>
, <h:graphicImage>
и т. Д., Либо явно объявленные в разметке, либо неявно добавленные JSF /RichFaces).
String uri = ((HttpServletRequest) request).getRequestURI();
// Ignore JSF2/RF4 resources (which are also mapped on FacesServlet).
if (uri.startsWith(ResourceHandler.RESOURCE_IDENTIFIER) || uri.startsWith(ResourceHandlerImpl.RICHFACES_RESOURCE_IDENTIFIER)) {
chain.doFilter(request, response);
return;
}
// ...
с
import javax.faces.application.ResourceHandler;
import org.richfaces.resource.ResourceHandlerImpl;
Почему ваше отображение /secured/*
не работает, потому что у вас есть один дополнительный путь /pages
в структуре вашей папки,Затем фильтр должен быть сопоставлен с /pages/secured/*
.