自定义AuthenticationManager

时间:2014-01-20 08:27:51

标签: spring authentication spring-security

我决定使用自定义的AutenticationManager进行单元测试。这是我到目前为止在测试上下文文件中放在一起的内容:

   
  <beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
 <beans:property name="location" value="classpath:ldap.properties"/>
</beans:bean>

<global-method-security secured-annotations="enabled" pre-post-annotations="enabled" >
    <expression-handler ref="expressionHandler"/>
</global-method-security>  

<authentication-manager alias="authenticationManager">
    <authentication-provider ref="preAuthProvider"> 
    <user-service>
<user name="department1000" password="password" authorities="ROLE_1000" />
<user name="alldepartments"    password="password2" authorities="ROLE_ALL_DEPT_ACCESS" />
<user name="esssaa"    password="password3" authorities="ROLE_STUDENT" />

             

                  

<beans:bean id="permissionEvaluator" class="fi.utu.security.PermissionEvaluatorImpl"/>

这会导致    配置问题:与'ref'属性一起使用时,authentication-provider元素不能包含子元素

我是否需要一些自定义userDetailsS​​ervice的自定义类,或者我可以以某种方式使其作为带有spring类的autowire bean工作?

1 个答案:

答案 0 :(得分:3)

您需要将user-service包装在authentication-provider元素中并正确终止上一个元素:

<authentication-manager alias="authenticationManager">
    <authentication-provider ref="preAuthProvider" /> 
    <authentication-provider> 
        <user-service>
           ...
        </user-service>
    </authentication-provider>
</authentication-manager>