2016-04-29 25 views
5

Ho Swagger configurato e funzionante per tutti i controller elencati nella mia applicazione. Tuttavia, voglio che riprenda l'Endpoint di Logout di Spring Security e non riesco a trovare un modo per farlo funzionare. Come puoi vedere dallo snippet di codice qui sotto, sto specificando un logoutUrl per un utente che invalida la loro sessione. Ho provato i contrassegni di annotazione a livello di classe e il livello del metodo, ma senza fortuna. Qualche idea?Configurare Swagger-UI per rilevare l'endpoint di HttpSecurity Logout di Spring

@Override 
public void configure(HttpSecurity http) throws Exception { 
    http.addFilter(someFilter()); 
    http.headers().and().csrf().disable() 
      .authorizeRequests() 
      .antMatchers("endpoint", 
        "endpoint", 
        "endpoint", 
        "endpoint", 
        "endpoint", 
        "endpoint", 
        "endpoint").permitAll()  
      .anyRequest().authenticated() 
      .and() 
      .logout().logoutUrl("endpoint/logout").invalidateHttpSession(true).logoutSuccessHandler(logoutSuccessHandler); 
} 

configurazione Lo Swagger Docket è qui sotto:

@Bean 
public Docket api() { 
    return new Docket(DocumentationType.SWAGGER_2) 
      .select() 
      .apis(RequestHandlerSelectors.any()) 
      .paths(PathSelectors.any()) 
      .build() 
      .apiInfo(new ApiInfo("API", 
        "Provides API's", 
        "1.0", 
        null, 
        "[email protected]", 
        null, 
        null)) 
      .useDefaultResponseMessages(false) 
      .pathProvider(new RelativePathProvider(servletContext) { 
       @Override 
       protected String applicationPath() { 
        return super.applicationPath() + "/path"; 
       } 

       @Override 
       protected String getDocumentationPath() { 
        return super.getDocumentationPath() + "/path"; 
       } 
      }); 
} 

risposta