Spring Security 3.1.0.RC1: с несколькимиэлементы почему я могу зарегистрировать только один менеджер аутентификации? - PullRequest
2 голосов
/ 18 марта 2011

У меня есть следующая конфигурация с несколькими элементами <http.../> (чтобы отдельно поддерживать аутентификацию REST через базовую аутентификацию и регистрацию в форме пользователя):

<security:http auto-config="false" pattern="/service/**" create-session="never" 
               entry-point-ref="basicAuthenticationEntryPoint" >
    <security:intercept-url pattern="/service/**" requires-channel="any" access="ROLE_REST_SERVICE" />
    <security:custom-filter position="BASIC_AUTH_FILTER" ref="basicAuthenticationFilter" />
</security:http>

<security:http auto-config="false" pattern="/**"
               entry-point-ref="loginUrlAuthenticationEntryPoint" >
    <security:logout logout-url="/logout" />
    <security:anonymous enabled="false"/>
    <security:custom-filter position="FORM_LOGIN_FILTER" ref="usernamePasswordAuthenticationFilter" />
    <security:custom-filter position="ANONYMOUS_FILTER" ref="anonymousAuthFilter" />
</security:http>

В каждом из моих двух фильтров, требующих аутентификации (FORM_LOGIN_FILTER и BASIC_AUTH_FILTER), я ссылаюсь на два разных менеджера аутентификации.

Но я получаю сообщение об ошибке, что уже зарегистрировал менеджер аутентификации.

Зачем мне использовать один менеджер аутентификации, если я заранее знаю, какой поставщик аутентификации понадобится для каждого фильтра?

Не следует ли мне использовать диспетчер аутентификации и просто запустить свой AuthenticationProvider как компонент и передать его в фильтр непосредственно как AuthenticationManager?

1 Ответ

4 голосов
/ 30 июля 2012

В Spring Security 3.1 вы можете иметь несколько элементов http, каждый из которых имеет свой собственный менеджер аутентификации.

Единственное, что вам нужно сделать, это добавить следующий атрибут authentication-manager-ref="your ref" к элементу http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...