but no declaration can be found for element 'authentication-manager'的一种解决办法

       将SpringSecurity2.x升到3.1后,application-security.xml文件中有配置,一直报如下错:

org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'authentication-manager'。开始怀疑是该配置文件头中的声明有问题,后改来改去折腾了很久也没解决。后来我带着尝试的心态,想会不会引入的包不够。我先前已经有spring-security-core-3.1.0.RELEASE.jar、spring-security-crypto-3.1.0.RELEASE.jar,spring-security-taglibs-3.1.0.RELEASE.jar,spring-security-web-3.1.0.RELEASE.jar,spring-security-acl-3.1.0.RELEASE.jar这些包引入了。我使用的是maven引入的。

       就在我新引入 spring-security-config-3.1.0.RELEASE.jar和spring-security-aspects-3.1.0.RELEASE.jar后,竟然不报错了。让我一阵惊喜。看来要使用

这个元素还是依赖于某个jar包的。研究了一下,由于错误中说明authentication-manager没有声明,发现spring-security-config-3.1.0.RELEASE.jar中含有一个类org.springframework.security.config.Elements,其中定义了很多配置文件中需要的元素,包括authentication-manager,authentication-provider,user-service等。所以当然需要这个包。

对于新使用SpringSecurity3.x的同学来说,提醒一句,必须放在里面,否则会报错

你可能感兴趣的:(SpringSecurity)