小编Chr*_*s B的帖子

JAX-RS 2过滤器有哪些范围?

我正在使用RestEasy 3.0.2,它是最早的JAX-RS 2实现之一,并在Tomcat 7中运行我的应用程序.我还通过WELD在我的应用程序中使用注入,WELD通过其CDI适配器与RestEasy集成.到目前为止一切正常.

现在,我编写了一个ContainerRequestFilter的实现,以在传入请求到达资源之前对其进行身份验证.JAX-RS标准表示可以为每个资源以及使用@Provider注释注释的每个其他JAX-RS组件进行注入.

以下是我的过滤器实现的简化版本:

@Provider
@Priority(Priorities.AUTHENTICATION)
public class AuthenticationFilter implements ContainerRequestFilter {

    @Inject
    AuthenticationProvider authenticationProvider;

    @Override
    public void filter(ContainerRequestContext requestContext) throws IOException {
        authenticationProvider.authenticate(requestContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:AuthenticationProvider@RequestScoped.

通常,此解决方案有效.正在注入组件并按预期处理请求.

但我仍然怀疑过滤器的生活范围.如果它是应用程序作用域,那么这显然会导致"有趣"的并发问题,这些问题在确定性测试中无法找到.

我已经查看了各种文档,指南和示例,但我发现没有使用过滤器注入或者说过滤器范围.

jax-rs java-ee resteasy cdi

2
推荐指数
1
解决办法
4820
查看次数

标签 统计

cdi ×1

java-ee ×1

jax-rs ×1

resteasy ×1