Я использую Spring Security с JSF 2. У меня есть фильтр, который контролирует, если доступ к БД на каждой странице в порядке. :
public void doFilter(ServletRequest aReq, ServletResponse aResponse, FilterChain aChain) throws IOException,
ServletException
{
...
if(!myContext.isdbRunning())
{
mLogger.debug("System not working. Redirecting to: "+"/error.jsf");
aReq.setAttribute("errorMsj", "DB is not started. Please contact DB admin.");
aReq.getRequestDispatcher("/error.jsf").forward(aReq, aResponse);
return;
}
aChain.doFilter(aReq, aResponse);
return;
}
Если все в порядке, моя страница JSF отображается правильно. но когда фильтр находит проблему в БД, он обрабатывает страницу ошибки.
aReq.getRequestDispatcher("/error.jsf").forward(aReq, aResponse);
но на этой странице не отображаются изображения и другие материалы, основанные на CSS ..
блокирует ли Spring Security контроль и запрещает ли содержимое моей страницы? или у меня ошибка? Как я могу решить это? Могу ли я использовать слушатель фазы?
Редактировать: часть моего web.xml
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter>
<filter-name>Gatekeeper</filter-name>
<filter-class>com.jsfsample.filter.GateKeeperFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Gatekeeper</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>