Предполагая, что у меня есть main.jsp, которые включают в себя другую защищенную страницуКак обезопасить включенный страницу с Spring безопасности
<%
RequestDispatcher rd = request.getRequestDispatcher("secure/protected.jsp");
rd.include(request, response);
%>
<http auto-config="true" once-per-request="true">
<intercept-url pattern="/secure/**" access="ROLE_SUPERVISOR" />
....
</http>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
В настоящее время, что я нашел являются: фильтр безопасности
- Spring фактически вызывается.
- protected.jsp все еще отображается в main.jsp. (Но я надеюсь, protected.jsp будет заблокирован яровой безопасности)
Я прочитал связанные обсуждения: Spring Security Allows Unauthorized User Access to Restricted URL from a Forward
можно ли крепят включенный JSP? Если нет, то почему? Я предполагаю, что причина заключается в том, что мы используем диспетчер запросов, мы все еще передаем исходный запрос, поэтому фильтр защиты от вирусов знает только исходный путь запроса (main.jsp) и не знает целевой путь (защищенный.jsp). Поэтому он не блокирует включение защищенного.jsp
но он не работает. Я использую Spring security 3.1.2.
'once-per-request' должно быть установлено как' false'. –
@PavelHoral Спасибо. но он не работает. – Hawk