【问题标题】:Spring security 4.x incompatible with Servlet 2.5?Spring security 4.x 与 Servlet 2.5 不兼容?
【发布时间】:2016-03-01 19:52:51
【问题描述】:

我们正在尝试将 Spring Security 4.0.2 引入使用 Spring 4.2.3 但也在 servlet 2.5 上运行的 Spring MVC 应用程序。我在配置安全性时遇到问题:

Caused by: java.lang.ClassNotFoundException: javax.servlet.FilterRegistration$Dynamic

我相信这个类只存在于 Servlet 3.0 中。是否可以将 Spring Security 4.0 与 Servlet 2.5 一起使用?还是应该退回到 Security 3.2?

【问题讨论】:

  • 我们将 Spring Security 4.0.3.RELEASE 与 Spring 4.2.4.RELEASE 和 Servlet API 2.5 一起使用,并且在编译、应用程序启动或运行时都不会遇到任何问题。我从我们的生产应用程序中创建了一个small sample,您可以查看它。您会看到它可以正常编译和加载。如果您可以发布一个类似的最小示例来演示该问题,那么有人可以检查一下。

标签: java spring spring-mvc spring-security


【解决方案1】:

我怀疑你正在使用 Jetty,this 解释了你的情况。

javax.servlet.FilterRegistration 类是在 Servlet 中引入的 3.0。此异常表明您的运行时类路径中仍有旧 Servlet API 版本的库,这些库在 类加载。

【讨论】:

    【解决方案2】:

    显然,Java 配置需要这个类。我使用旧的 XML 配置,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2014-04-14
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      相关资源
      最近更新 更多