我决定使用自定义的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元素不能包含子元素
我是否需要一些自定义userDetailsService的自定义类,或者我可以以某种方式使其作为带有spring类的autowire bean工作?
答案 0 :(得分:3)
您需要将user-service
包装在authentication-provider
元素中并正确终止上一个元素:
<authentication-manager alias="authenticationManager">
<authentication-provider ref="preAuthProvider" />
<authentication-provider>
<user-service>
...
</user-service>
</authentication-provider>
</authentication-manager>