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

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

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后,竟然不报错了。让我一阵惊喜。看来要使用

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值