2012-10-29 40 views
1


我已經寫了一些花哨的代碼揚鞭API過濾打轉轉:揚鞭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的調試器中都沒有停止行,也沒有打印行。
我錯過了什麼嗎?

回答

3

過濾將應用於文檔,而不是方法調用本身。查看是否直接點擊了swagger文檔資源(即http:// {你的服務器}:8080/user.json),你應該看到發佈的printlns。

爲了保護這些方法本身,您可以編寫一個單獨的過濾器,或者在swagger和invocation過濾器之間共享邏輯。