2013-09-25 2 views
0

Я только начал изучать безопасность Spring. Я читаю справочник Spring Security. Здесь написано, какConfusion in Spring Security Filter Chain

Использование фильтров = «никто» не осуществляет свою деятельность путем создания пустой цепочки фильтров в FilterChainProxy Spring Security, в то время как атрибуты доступа используется для настройки FilterSecurityInterceptor в одном фильтре цепь, которая создается по конфигурации пространства имен. Два из них: применяются независимо, поэтому, если у вас есть ограничение доступа для подматрицы шаблона, у которого есть атрибут filters = "none", ограничение доступа будет проигнорировано, даже если оно указано первым. Это значение не применимо к атрибуту filters = "none" для шаблона/** , так как это используется цепочкой фильтров пространства имен. В версии 3.1 вещи более гибкие. Вы можете определить несколько цепочек фильтров, а атрибут фильтров больше не поддерживается.

Может ли кто-нибудь уточнить эту ноту из справочной документации?

ответ

2

До весны 3,1 предположим yopu хотите разрешить доступ к конкретному URL/шаблон т.е. вы не хотите весной безопасности, которые будут применены на него, вы можете добавить

<sec:intercept-url pattern="/nonsecure/**" filters="none" /> 

Здесь не фильтрует = ни создать S пустой цепь фильтра безопасности, и, следовательно, этот ресурс не защищен весной.

Даже если вы добавляете атрибут доступа вместе с фильтрами = «none», он будет игонным.

весной 3.1 и выше вы можете определить несколько цепочек фильтров, как

<security:http pattern="/nonsecure/**" security="none"/> 

<security:http pattern="/secure/**" > 
....other security config 
</security:http> 
Смежные вопросы