我已经编写了一些花哨的代码来使用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
中的调试器都没有停止,也没有打印行
我错过了什么吗?
答案 0 :(得分:3)
过滤将应用于文档,而不是方法调用本身。看看是否直接点击swagger文档资源(即http:// {your-server}:8080 / user.json),你应该看到发出的printlns。
为了保护方法本身,你可以编写一个单独的过滤器,或者在swagger和invocation过滤器之间共享逻辑。