Spring security Spring security没有接收我的身份验证管理器

Spring security Spring security没有接收我的身份验证管理器,spring-security,Spring Security,我被spring安全配置问题搞砸了 这是我的配置 <security:global-method-security pre-post-annotations="enabled" /> <security:http auto-config="true"> <security:intercept-url pattern="/dologin" access="ROLE_USER,ROLE_ANONYMOUS" /> <secu

我被spring安全配置问题搞砸了

这是我的配置

    <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>

我可能会出什么问题?请描述一下

我相信您需要通过使用security:customauthenticationprovider标记来识别您的定制提供者,以实现spring安全性

例如:

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

您可能还需要在您的匿名AuthenticationProvider bean上使用它。

请尝试以下操作:

<security:authentication-manager>
    <security:authentication-provider user-service-ref="userDetailsService"/>
</security:authentication-manager>

在daoAuthenticationProvider中,您有一个对userDetailsService的引用,但我在您的配置中没有看到这样的bean。

检查以前的错误消息,我希望在那里看到缺少的bean的引用。

在定义安全身份验证管理器时使用/define'id'

例如:

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

你好,Donal Boyle,我正在使用spring security 3.0版。它没有任何标记,就像我试图找出在配置文件中找到安全标记时会发生什么一样。但我的努力没有任何结果。现在我选择了完全基于bean定义的配置。我会告诉你关于这个话题的任何相关信息
<security:authentication-manager id="authenticationManager" alias="authenticationManager">
    <security:authentication-provider ref="daoAuthenticationProvider"/>
</security:authentication-manager>