我正在开发一个使用Spring和Spring Security的项目。
我们当前的Spring版本是4.0.6.RELEASE
,我们的Spring Security版本是4.0.0.M1
。我尝试迁移到更高版本的Spring Security 4.0.2 Release
但是当我运行我的Web应用程序时,某些功能会抛出NoSuchMethodError
。我读到这可能与版本不兼容。我的问题是Spring目前版本的最佳安全性是什么?
答案 0 :(得分:2)
Spring Security将根据特定的Spring版本进行编译和构建。以下是Spring Security与Spring版本的兼容版本。
Spring security 4.0.2.RELEASE is built on Spring version 4.3.2.RELEASE
Spring security 4.0.1.RELEASE is built on Spring version 4.3.2.RELEASE
Spring security 4.0.0.RELEASE is built on Spring version 4.1.6.RELEASE
在您的情况下,由于您的Spring版本为4.0.6.RELEASE,因此您不应升级Spring Security版本,否则可能会出现NoClassDefFound
或NoSuchMethod
等错误。
实际上你应该使用Spring Security版本3.2.9.RELEASE。
答案 1 :(得分:0)
问题是我对Spring Security有以下依赖:
spring-security-web
spring-security-config
spring-security-taglibs
spring-security-test
此依赖项将默认spring-security-core
设置为默认版本3.2.4.RELEASE
,该版本没有更高级别的Spring Security方法使用的所有方法。
解决方案是添加覆盖默认版本的spring-security-core
依赖项。