Spring mix basi c auth и jwt - PullRequest
       9

Spring mix basi c auth и jwt

0 голосов
/ 05 апреля 2020

У меня есть приложение webflux и сейчас я использую okta для аутентификации. SecurityWebFilterChain выглядит следующим образом:

http
                .csrf().disable()
                .authorizeExchange()
                .pathMatchers("/v2/api-docs",
                        "/configuration/ui",
                        "/swagger-resources",
                        "/swagger-resources/**",
                        "/configuration/security",
                        "/swagger-ui.html",
                        "/webjars/**",
                        "/**/v2/api-docs")
                .permitAll()
                .anyExchange().authenticated()
                .and()
                .oauth2ResourceServer().jwt();

Но теперь мне нужно получить доступ к метрике исполнительного механизма EP из Prometheus, поэтому я хотел включить базовый c auth для привода и все еще использовать okta для отдыха. Является ли это возможным? Или, может быть, есть лучшее решение?

prometheus.yml:

scrape_configs:
- job_name: 'springboot'
  metrics_path: '/actuator/prometheus'
  static_configs:
  - targets: ['gateway:8060']

Я пытался реализовать два компонента SecurityWebFilterChain, а второй:

http
                .authorizeExchange()
                .pathMatchers("/actuator/**")
                .authenticated()
                .and()
                .httpBasic();

        return http.build();

Но тогда у меня есть исключение: Caused by: java.lang.IllegalArgumentException: authenticationManager cannot be null

...