RestTemplate запрашивает UnknownHostException, когда spring-cloud-starter-oauth2 проверяет токен - PullRequest
0 голосов
/ 29 сентября 2019

restTemplate выбрасывает UnknownHostException при использовании service-name

Я добавил bean restTemplate

@Configuration
public class SpringCloudConfig {
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Я использую Spring-cloud Greenwich.SR3 в родительских pom

зависимостях:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-oauth2</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>

yml:

#OAuth
security:
  oauth2:
    resource:
      loadBalanced: true
      token-info-uri: http://FLY-AUTH/oauth/check_token
    client:
      client-id: sanke
      client-secret: sanke
      scope: all

OAuth информация в yml

1 Ответ

0 голосов
/ 07 октября 2019

Изменить файл ResourceServerConfig

@Configuration
@EnableResourceServer
@AllArgsConstructor
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {

    private final EntryPointUnauthorizedHandler entryPointUnauthorizedHandler;
    private final MyAccessDeniedHandler myAccessDeniedHandler;
    private final RemoteTokenServices remoteTokenServices;
    private final RestTemplate restTemplate;

    @Override
    public void configure(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .cors()
                .and()
                .authorizeRequests()
                .antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
                .antMatchers("/auth/**").permitAll()
                .anyRequest().permitAll()
                .and()
                .exceptionHandling()
                .authenticationEntryPoint(entryPointUnauthorizedHandler)
                .accessDeniedHandler(myAccessDeniedHandler);
    }

    @Override
    public void configure(ResourceServerSecurityConfigurer resources) {
        DefaultAccessTokenConverter accessTokenConverter = new DefaultAccessTokenConverter();
        UserAuthenticationConverter userTokenConverter = new FlyUserAuthenticationConverter();
        accessTokenConverter.setUserTokenConverter(userTokenConverter);
        //Config restTemplete
        remoteTokenServices.setRestTemplate(restTemplate);
        remoteTokenServices.setAccessTokenConverter(accessTokenConverter);
        resources.tokenServices(remoteTokenServices);
        resources.authenticationEntryPoint(entryPointUnauthorizedHandler);
    }

}

...