【发布时间】:2016-02-13 06:58:12
【问题描述】:
启用 Servlet 3.0 的容器允许我们跳过 web.xml servlet 配置,并在您扩展 javax.ws.rs.core.Application、使用 @ApplicationPath 注释它并且不覆盖 getClasses() 方法后自动扫描您的代码以查找资源和提供程序。 (希望我没看错:\)
目前我正在使用 Jersey 实现并使用 @RolesAllowed 注释保护资源方法。为此,我需要注册 org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature Provider 类,但是,我知道这样做的唯一方法是:
- 在我的
Application类的getClasses()方法中注册该类(我认为这会导致Servlet 3.0 容器不自动扫描) -
继续使用 web.xml Jersey servlet 设置和
<init-param> <param-name>jersey.config.server.provider.classnames</param-name> <param-value>org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature</param-value> </init-param>
现在这个问题背后的背景是我可能不得不切换到使用 RESTeasy,如果我使用选项 1,它会在代码中添加 Jersey 依赖项,并且代码不再是通用的。
如何编写代码以使用安全注释,同时维护可部署到另一个 Servlet 3.0 JAX-RS 实现的通用 JAX-RS 代码?
【问题讨论】:
标签: java rest servlets jax-rs jersey-2.0