Посмотрев в свой собственный код, я заметил, что не использовал атрибут «ref», а вместо этого поместил этот тег в определение своего компонента следующим образом:
<bean id="ntlmFilter" class="org.springframework.security.ntlm.samples.failover.NtlmProcessingFilter">
<sec:custom-filter position="NTLM_FILTER" />
<property name="authenticationManager" ref="authenticationManager" />
<property name="retryOnAuthFailure" value="false" />
<property name="securityConfiguration" ref="securityConfiguration" />
</bean>
Источник: http://github.com/aloiscochard/spring-security-ntlm-samples/blob/master/spring-security-ntlm-samples-failover/src/main/resources/applicationContext-security.xml
Даже если это для spring-security 2, поведение в версии 3 такое же.
Вы можете найти все возможные позиции в перечислении org.springframework.security.config.http.SecurityFilters:
http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.security/spring-security-config/3.0.2.RELEASE/org/springframework/security/config/http/SecurityFilters.java
Вы можете использовать некоторую позицию, уже определенную в этом перечислении, чтобы определить, в каком порядке должны быть установлены ваши пользовательские фильтры.
Например:
- один фильтр перед ПОСЛЕДНИМ и один в ПОСЛЕДНЕМ (но не после ПОСЛЕДНЕГО! ничего не может быть после ПОСЛЕДНЕГО!)
- или один фильтр перед SWITCH_USER_FILTER и один после.
Не знаете, где вы размещаете свои теги? но мне нравится иметь их прямо внутри фильтрующего компонента... проще в обслуживании :-)
Надеюсь, это помощь!
PS: Поскольку позиция основана на целом числе, вы, возможно, можете указать число вместо значения перечисления (предупредите нас о правильном номере позиции, посмотрите на логику внутри перечисления SecurityFilters), не уверен, что принято...
person
Alois Cochard
schedule
14.10.2010