Я немного поиграл с Spring Security и заметил следующую странность.Весенняя безопасность oddity в <intercept-url> при указании метода
Когда я указываю блок <http>
, как это, в моем XML-контексте безопасности.
<http>
<http-basic/>
<port-mappings>
<port-mapping http="8080" https="8181"/>
</port-mappings>
<intercept-url pattern="/url1**" access="ROLE_ROLE1" requires-channel="https"/>
<intercept-url pattern="/url2**" access="ROLE_ROLE2"/>
<intercept-url pattern="/url3**" access="ROLE_ROLE3" />
<!-- <intercept-url pattern="/**" access="ROLE_ADMIN" />
</http>
Все URL-адреса, по-видимому, запускают базовую аутентификацию HTTP, когда я нажимаю на различные URL-адреса в браузере.
Это хорошо и то, что я ожидал, но когда я добавить параметр метода 1 из перехватывать URL, как это:
<http>
<http-basic/>
<port-mappings>
<port-mapping http="8080" https="8181"/>
</port-mappings>
<intercept-url pattern="/url1**" access="ROLE_ROLE1" requires-channel="https"/>
<intercept-url pattern="/url2**" access="ROLE_ROLE2" method="GET"/>
<intercept-url pattern="/url3**" access="ROLE_ROLE3" />
<!-- <intercept-url pattern="/**" access="ROLE_ADMIN" />
</http>
Базовая аутентификация отключена для всех URL, кроме того, я» ve явно задает метод на (/url2
).
Это так, как это должно работать, потому что это кажется немного глупостью для меня. Это ошибка?
Я пробовал и работает отлично. – rodrigoap
, поэтому, когда вы переходите к url1, он запрашивает у вас вашу информацию об аутентификации? Я не только не вижу этот флажок, но не выполняет мой собственный менеджер аутентификации. Какая версия весенней безопасности у вас есть? Я использую 3.0.0.M2. – Vinnie
Я тестировал url3, потому что не настроил https-коннектор для url1. Я использовал Spring Security 2.0.4 от spring-security-samples-tutorial-2.0.4.war. – rodrigoap