在 CXF Spring 引导中注册过滤器

Register Filter in CXF Spring Boot

如何在 CXF 中注册 ContainerResponseFilter/ContainerRequestFilter?就像 Jersey 的 ResourceConfig.

@Provider
@Priority(value = 2)
public class CorsResponseFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
            throws IOException {

        System.out.println("filtered");
    }

}

如果您启用了 cxf 添加 属性 cxf.jaxrs.component-scan=true 那么您的资源和提供者都应该是应用程序上下文的一部分。因此用 @Service@Component 注释。

@Component
@Provider
@Priority(value = 2)
public class CorsResponseFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
            throws IOException {

        System.out.println("filtered");
    }

}

如果您使用 类 扫描启用,请确保提供程序是您提供的软件包的一部分。

cxf.jaxrs.classes-scan=true
cxf.jaxrs.classes-scan-packages=yourpackage where provider is present.