【问题标题】:Jersey not triggering ContainerRequestFilter泽西岛没有触发 ContainerRequestFilter
【发布时间】:2016-02-05 13:59:29
【问题描述】:

我正在尝试使用 ContainerRequestFilter 对基于 Grizzly 的 Jersey 应用程序执行一些身份验证。

我通过扩展 PackagesResourceConfig 创建自己的资源配置:

public class MainResourceConfig extends PackagesResourceConfig {

    public MainResourceConfig() {
        super("za.co.quinn.ws");
        Map<String, Object> properties = getProperties();
        properties.put(
                "com.sun.jersey.spi.container.ContainerRequestFilter",
                "com.sun.jersey.api.container.filter.LoggingFilter;" + MainRequestFilter.class.getName()
        );
        properties.put(
                "com.sun.jersey.spi.container.ContainerResponseFilters",
                "com.sun.jersey.api.container.filter.LoggingFilter;" + MainResponseFilter.class.getName()
        );
    }
}

请求过滤器用于身份验证:

@Inject
Authorization authorization;

@Override
public ContainerRequest filter(ContainerRequest request) {

    if (!request.getRequestUri().getPath().endsWith(".wadl"))
        authorization.authorize(request);

    return request;
}

响应过滤器用于标头:

@Override
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {

    response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
    response.getHttpHeaders().add("Access-Control-Allow-Methods", "GET, HEAD, POST, DELETE, PUT");
    response.getHttpHeaders().add("Access-Control-Allow-Headers", "Authorization, Content-Type");

    return response;
}

MainResponseFilter 会被触发,但 ContainerRequestFilter 不会。

【问题讨论】:

    标签: jersey grizzly


    【解决方案1】:

    “MainResponseFilter 会被触发,但 ContainerRequestFilter 不会。”

    查看你的属性,主要是它的发送,然后比较它们

    ...container.ContainerRequestFilter"
    
    ...container.ContainerResponseFilters"
    

    您缺少用于请求过滤器的 s。为了避免这样的拼写错误,您可以使用常量

    你也可以

    getContainerRequestFilters().add(new YourRequestFilter());
    getContainerResponseFilters().add(new YourResponseFilter());
    

    【讨论】:

      猜你喜欢
      • 2015-07-10
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      相关资源
      最近更新 更多