Настройте Swagger-UI для получения конечной точки выхода HttpSecurity Spring
У меня Swagger настроен и работает для всех контроллеров, перечисленных в моем приложении. Однако я хочу, чтобы он выбрал конечную точку Spring Security Logout, и я не могу найти способ заставить ее работать. Как вы можете видеть из фрагмента кода ниже, я указываю logoutUrl для пользователя, чтобы сделать его сеанс недействительным. Я пробовал делать пометки на уровне класса и на уровне метода, но не повезло. Есть идеи?
@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);
}
Моя конфигурация Swagger Docket приведена ниже:
@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,
"someEmail@nowhere.com",
null,
null))
.useDefaultResponseMessages(false)
.pathProvider(new RelativePathProvider(servletContext) {
@Override
protected String applicationPath() {
return super.applicationPath() + "/path";
}
@Override
protected String getDocumentationPath() {
return super.getDocumentationPath() + "/path";
}
});
}
1 ответ
Плагин Spring Fox использует Spring bean для построения документации API. Посмотрите на этот ответ: /questions/26090575/dokumentirovanie-api-vhoda-vyihoda-spring-v-swagger/26090583#26090583