Spring Boot Admin 2 получает конечные точки привода 401 - PullRequest
0 голосов
/ 01 октября 2018

Я создал Spring Boot Admin 2 Server и интегрировал Spring Boot Admin 2 Client в моем сервисном приложении API.В настоящее время мой проект службы API защищен OAuth2 Framework.Чтобы обойти конечные точки привода, я добавил конфигурацию в WebSecurity и HttpSecurity класса WebSecurityConfigurerAdapter, но похоже, что конечные точки привода все еще дают 401. Когда я посмотрел на проблему, я обнаружил, что в public void configure(HttpSecurity http) когда я удаляю .antMatcher("/user"), конечные точки привода были открыты, и Admin Server смог получить все детали, но когда я удалял .antMatcher("/user") OAuth2 не вызывал ошибку.

Мой Spring Boot Admin Server работает подhttp://localhost:8080 и проект API (Admin Client) выполняется под http://localhost:8081

Я использую

Spring Boot 2 (2.0.4.RELEASE)
Spring Cloud (Finchley.RELEASE)
Spring Boot Admin 2 (2.0.2)

Oauth2 user-info-uri настроен в моем проекте APIкак показано ниже

security: 
  oauth2:
    resource:
      user-info-uri: http://localhost:9999/auth/user

Некоторые свойства, которые я добавил в проект API, приведены ниже

management.endpoints.web.exposure.include=health,info,auditevents,metrics,loggers,logfile,httptrace,env,flyway,liquidbase,shutdown,mappings,scheduledtasks,threaddump,heapdump
management.endpoint.health.show-details=always
management.security.enabled=false
management.health.rabbit.enabled=false
spring.boot.admin.client.url[0]=http://localhost:8080
spring.boot.admin.client.username=user
spring.boot.admin.client.password=password
spring.boot.admin.client.instance.management-url=http://localhost:8081/actuator
spring.boot.admin.client.instance.health-url=http://localhost:8081/actuator/health
spring.boot.admin.client.instance.service-url=http://localhost:8081

Мой пользовательский WebSecurityConfigurer указан ниже

@Order(1)
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {

    public WebSecurityConfigurer() {
        super(true);
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
         web.ignoring()
         .antMatchers("/actuator/**");
        web.ignoring().antMatchers(HttpMethod.OPTIONS, "/**", "/actuator/**");
    }

    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.anonymous().and().antMatcher("/user").authorizeRequests()
        .requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll().
         antMatchers("/actuator/**").permitAll().
         anyRequest().authenticated()
        .and()
        .csrf()
        .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
        .ignoringAntMatchers("/instances", "/actuator/**");
    }
}

Может кто-нибудь, пожалуйста, помогите мне в этом

...