Spring-security не забирает мой менеджер аутентификации - PullRequest
1 голос
/ 03 февраля 2010

У меня проблема с конфигурацией безопасности пружины

Вот моя конфигурация

    <security:global-method-security pre-post-annotations="enabled" />

<security:http auto-config="true">
    <security:intercept-url pattern="/dologin"     access="ROLE_USER,ROLE_ANONYMOUS" />
    <security:form-login login-processing-url="/security_check" login-page="/onlogin" always-use-default-target="false" authentication-failure-url="/onlogin" default-target-url="/home"  />
    <security:logout invalidate-session="true" logout-url="/logout" logout-success-url="/onlogout" />
    <security:remember-me />
    <security:http-basic/>
</security:http>

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider ref="daoAuthenticationProvider"/>
</security:authentication-manager>

<bean id="anonymousAuthenticationProvider"
    class="org.springframework.security.authentication.AnonymousAuthenticationProvider">
    <property name="key" value="badgerbadgerbadger" />
</bean>

<bean id="daoAuthenticationProvider"
    class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
    <property name="userDetailsService" ref="userDetailsService" />
</bean>

Моя проблема в том, что когда приходит запрос на аутентификацию; Я считаю, что зарегистрировано только два провайдера.

org.springframework.security.authentication.AnonymousAuthenticationProvider@8fe4ad
org.springframework.security.authentication.RememberMeAuthenticationProvider@1db9cb9

Что я могу сделать не так? Пожалуйста, опишите?

Ответы [ 4 ]

1 голос
/ 29 марта 2010

Попробуйте следующее:

<security:authentication-manager>
    <security:authentication-provider user-service-ref="userDetailsService"/>
</security:authentication-manager>
1 голос
/ 03 апреля 2012

в вашем daoAuthenticationProvider у вас есть ссылка на userDetailsService, но я не вижу такого компонента в вашей конфигурации.
проверьте предыдущие сообщения об ошибках, я ожидаю увидеть ссылку на пропущенный компонент.

1 голос
/ 04 февраля 2010

Я полагаю, что вам нужно идентифицировать своего нестандартного провайдера для обеспечения безопасности с помощью тега security: custom-authentication-provider.

Например:

<bean id="daoAuthenticationProvider"
     class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
    <security:custom-authentication-provider />
    <property name="userDetailsService" ref="userDetailsService" />
</bean>

Это может понадобиться и для вашего bean-компонента anonymousAuthenticationProvider.

0 голосов
/ 14 января 2019

Использовать / определять 'id' при определении менеджера аутентификации безопасности.

Например:

<security:authentication-manager id="authenticationManager" alias="authenticationManager">
    <security:authentication-provider ref="daoAuthenticationProvider"/>
</security:authentication-manager>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...