Недавно Spring Security предоставила возможность настроить несколько <http>
элементов.Я пытаюсь установить конфигурацию для всех URL-адресов, которые сопоставляют шаблон / foo / *, и другую для остальных.Теперь у меня есть две страницы входа, одна из которых установлена в / login, а другая в / foo login.Поэтому я хочу, чтобы все URL, которые сопоставляют / foo / **, выполняют вход в систему с /foo/login.
. Я создал конфигурацию, подобную приведенной ниже, но при вводе URL, например, / foo / что-то(что не должно быть разрешено анонимному пользователю) вместо того, чтобы перейти в / foo / login, он переходит в /login.
Версия Spring Security: 3.1.0.RC1 .Есть идеи о том, что может происходить?
Спасибо.
<sec:http auto-config="true" pattern="/foo/**" entry-point-ref="ajaxAuthenticationEntryPoint">
<sec:intercept-url pattern="/foo/login" access="ROLE_ANONYMOUS,ROLE_BASIC,ROLE_ADMIN" />
...
<!-- other sec:intercepts for some /foo/* urls -->
...
<sec:intercept-url pattern="/foo/**" access="ROLE_BASIC" />
<sec:custom-filter before="SECURITY_CONTEXT_FILTER" ref="basicProcessingFilter" />
<sec:form-login login-page="/foo/login" authentication-failure-url="/foo/login" default-target-url="/index" always-use-default-target="true" />
<sec:session-management>
<sec:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" expired-url="/login" />
</sec:session-management>
</sec:http>
<sec:http auto-config="true" pattern="/**" entry-point-ref="ajaxAuthenticationEntryPoint">
<!-- some sec:intercepts for some urls -->
...
<sec:intercept-url pattern="/**" access="ROLE_ADMIN" />
<sec:custom-filter before="SECURITY_CONTEXT_FILTER" ref="basicProcessingFilter" />
<sec:form-login login-page="/login" default-target-url="/index" always-use-default-target="true" />
<sec:session-management>
<sec:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" expired-url="/login" />
</sec:session-management>
</sec:http>