Spring-boot: springfox-swagger-ui OAuth2 password_credentials
Я создал этот сервер ресурсов Oauth2:
@Configuration
@EnableResourceServer
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
private static final String RESOURCE_ID = "frontoffice-rest-api";
private static final String SECURED_PATTERN = "/**";
private static final String SECURED_READ_SCOPE = "#oauth2.hasScope('read')";
private static final String SECURED_WRITE_SCOPE = "#oauth2.hasScope('write')";
@Override
public void configure(HttpSecurity http) throws Exception {
http.requestMatchers()
.antMatchers(SECURED_PATTERN).and().authorizeRequests()
.antMatchers("/actuator/**").permitAll()
.antMatchers("/userlogin").permitAll()
.antMatchers(
"/v2/api-docs",
"/configuration/ui",
"/swagger-resources",
"/configuration/security",
"/swagger-ui.html",
"/webjars/**",
"/swagger-resources/configuration/ui",
"/swagger-ui.html",
"/swagger-resources/configuration/security"
).permitAll()
.antMatchers(HttpMethod.OPTIONS).permitAll()
.antMatchers(HttpMethod.POST, SECURED_PATTERN).access(SECURED_WRITE_SCOPE)
.anyRequest().access(SECURED_READ_SCOPE);
}
Я смог получить токен с помощью Почтальона, используя password_credential
тип предоставления успешно:
Мы пытаемся настроить springfox-swagger-ui
для того, чтобы иметь возможность войти в систему с помощью oauth2
протокол.
До сих пор мы только опубликовали swagger-ui
без навыков безопасности. Таким образом, мы можем видеть только конечные точки документации, но мы не можем их попробовать.
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage(DocumentController.class.getPackage().getName()))
.paths(PathSelectors.any())
.build()
.apiInfo(this.getMetaData());
}
Как мы могли бы научить springfox-swagger-ui
использовать OAuth2 password_credentials
?