Как получить доступ к пользовательскому интерфейсу Swagger или как исключить пользовательский интерфейс Swagger из сервера ресурсов, если он интегрирован с сервером авторизации

Я реализовал микросервис сервера авторизации (auth-service) со стандартами oauth2 и OpenId для аутентификации и авторизации, используя новую версию безопасности весенней загрузки 3.2. Также я реализовал еще один микросервис (api-сервис) для Resource Server с помощью Swagger v3. Все защищенные ресурсы присутствуют в этом микросервисе. Для доступа к этим защищенным ресурсам с сервера ресурсов (API-сервиса) я использую токен доступа (JWT), который генерируется службой аутентификации. Проблема в том, что я исключил конечные точки, связанные с swagger, из системы безопасности, но получаю несанкционированный ответ, а пользовательский интерфейс swagger вообще не загружается. Если кто-нибудь знает, как это решить, пожалуйста, дайте мне знать. Я пробовал несколько вещей, но это не работает.

Ниже приведена моя конфигурация Yaml и сервера ресурсов.

КОНФИГУРАЦИЯ YAML:

ведение журнала: уровень: корень: ИНФОРМАЦИЯ org.springframework.web: DEBUGorg.springframework.security: DEBUGorg.springframework.security.oauth2: DEBUG

весна: безопасность: oauth2: сервер ресурсов: jwt: Issuer-uri: http://localhost:8089jwk-set-uri: http://localhost:8089/oauth2/jwks

КОНФИГУРАЦИЯ РЕСУРСНОГО СЕРВЕРА:

      @Value("${server.servlet.context-path}")
private String contextPath;

/**
 * Publicly accessible urls i.e., not secured url, auth service will ignore this URLs
 *
 * @return String[] of urls
 */
private String[] publicAPI() {
    return Stream.of(
            "/css/**",
            "/api-docs/**",
            "/swagger-ui/**",
            "/configuration/ui",
            "/swagger-resources/**",
            "/configuration/security",
            "/swagger-ui.html",
            "/webjars/**",
            "/v3/api-docs",
            "/swagger-resources/**",
            "/*/swagger-resources/**",
            "/*/v3/api-docs"
    ).toArray(String[]::new);
}

@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
    http.csrf(csrf -> csrf
            .ignoringRequestMatchers(publicAPI())
    ).authorizeHttpRequests(authorize -> authorize
                    .requestMatchers(publicAPI()).permitAll()

            ).oauth2ResourceServer(resourceServer ->
                    resourceServer.jwt(Customizer.withDefaults())
            );

    return http.build();
}

Спасибо.

0 ответов