Swagger API过滤似乎不起作用

时间:2012-10-29 07:49:04

标签: java swagger


我已经编写了一些花哨的代码来使用Swagger API过滤:

public class ApiAuthorizationFilterImpl implements ApiAuthorizationFilter {
    @Override
    public boolean authorize(String apiPath, String method, HttpHeaders headers, UriInfo uriInfo) {
        System.out.println("authorize");
        return true;
    }

    @Override
    public boolean authorizeResource(String apiPath, HttpHeaders headers, UriInfo uriInfo) {
        System.out.println("authorizeResource");
        return true;
    }
}

然后我用这些行扩展了我的web.xml文件:

<init-param>
    <param-name>swagger.security.filter</param-name>
    <param-value>mypackage.rest.utils.ApiAuthorizationFilterImpl</param-value>
</init-param>

但这似乎不起作用。每当我调用我的REST方法时,ApiAuthorizationFilterImpl中的调试器都没有停止,也没有打印行 我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

过滤将应用于文档,而不是方法调用本身。看看是否直接点击swagger文档资源(即http:// {your-server}:8080 / user.json),你应该看到发出的printlns。

为了保护方法本身,你可以编写一个单独的过滤器,或者在swagger和invocation过滤器之间共享逻辑。