Spring 使用 Java EE 6 Restful 服务的安全性

Spring Security with Java EE 6 Restful Service

我已经创建了 JavaEE 6 Restful 服务,现在愿意将其与 SpringSecurity 集成。但是,我真的不想使用 SpringMVC 并尽可能减少库依赖性。但是,每当我创建一个 web.xml 文件并在其中包含一个过滤器时

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>
        org.springframework.web.filter.DelegatingFilterProxy
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>

</filter-mapping>

我得到 class not found 异常,这对我来说很理解,因为我没有包含正确的库。但是,我已经阅读了太多的博客并以类似的方式使用该库。

Caused by: java.lang.ClassNotFoundException: org.springframework.web.filter.DelegatingFilterProxy

我在我的应用程序中包含了两个库:

spring-security-core-3.2.3.RELEASE spring-security-web-3.2.3.RELEASE

有没有人这样用过建筑。基本上我想使用 Spring Security 的 OAuth2。这就是为什么我要尝试做这一切。其次,不想要太多的配置文件,这就是JavaEE 6开发Service的原因。

Spring 安全依赖于 Spring 框架,因此仅向项目添加 spring-security jar 是不够的。 DelegatingFilterProxy class 在 spring-web 库中提供,但我想你需要更多的 jar,然后单独使用 spring-web 才能让它工作。

通常情况下,这些额外的 jar 会在使用 maven/ivy/grails 等工具为您处理临时依赖项时自动包含。

如果您手动管理您的库,您通常会下载包含所有必需 jar 的分发 zip,但我无法找到 link 到 spring 安全分发。根据 docs 它应该可以从主 spring 安全页面获得,但我找不到下载 link。

然而,spring-框架 (check the manual) 有一个分布。我想在发行版中的 jar 之上添加 spring-security jar 就足够了,但是发行版将包含比 spring-security 真正需要的库更多的库。

我想您可以通过 maven pom of spring-secuirty-web 手动跟踪所有必需的依赖项,但这是一项乏味的工作。