2015-04-29 109 views
0

我嘗試使用swagger,spring-rest-doc和spring-fox生成基於spring mvc的rest服務的文檔。但是,我的挑戰是記錄基於spring安全xml配置的端點。到目前爲止,春狐已經成爲贏家。但它記錄了所有彈簧安全支持的方法。關於如何篩選出我需要的想法?使用xml配置的彈簧安全性的Swagger文檔

舉例來說,當我使用/swagger-ui.html拉起文檔頁面 我看到以下組:

  • 基本誤差控制器
  • 授權端點
  • 白色標籤-approval端點
  • 健康檢查

其中我只需要授權,ENDP oint和健康檢查器。有任何想法嗎?

回答

0

你看過文檔to transition to 2.0

@Bean 
public Docket swaggerSpringMvcPlugin() { 
    return new Docket(DocumentationType.SWAGGER_2) 
     .groupName("business-api") 
     .select() 
      //Ignores controllers annotated with @CustomIgnore 
      .apis(not(withClassAnnotation(CustomIgnore.class)) 
      // and by paths 
      .paths(paths()) 
      .build() 
     .apiInfo(apiInfo()) 
     .securitySchemes(securitySchemes()) 
     .securityContext(securityContext()); 
} 

您應該能夠使用RequestHandlerSelectors篩選您使用以下謂詞需要 API的

  • 類註釋,如例顯示上述withClassAnnotation
  • 方法的註釋(用於過濾操作) withMethodAnnotation
  • 由基礎包裝basePackage

我懷疑你已經想出瞭如何讓它與XML配置工作(在這種情況下,這個問題的標題是不正確的)。如果你需要更多的例子,還有很多demos and examples。如果您還有其他問題,問題跟蹤器可能比我們不經常使用的stackoverflow.com更好。

+0

感謝您的回覆。我伸出了另一個論壇,你回答(謝謝)。問題在於spring(2.0.5)中的tokenendpoint將endpoint/oauth/token暴露給所有的http方法。無法弄清楚如何過濾出特定的方法。 – picsram

+0

這個'.apis(not(withClassAnnotation(CustomIgnore.class))'不適用於我的2.2.2。 –

+1

@MikhailBatcer'@ ApiIgnore'已經被支持。'not(....)'技術只是如果你不想使用springfox提供的註釋,無論如何,如果它不起作用,請創建一個問題。 –