Как настроить OAuth2RestOperations на сервере ресурсов и установить в него текущий токен - PullRequest
0 голосов
/ 27 января 2019

Существует сервер авторизации (UAA) и клиентский и ресурсный сервер, которые запускаются при весенней загрузке 2.

Все методы API ресурсного сервера защищены.Я могу войти в UAA с помощью authorization_code strategy, и клиент обменяет токен доступа с кодом авторизации, поэтому вызывается метод сервера ресурсов.Все работает правильно.Все серверы ресурсов, которые защищены клиентом, устанавливаются друг с другом RestTemplate.Из-за безопасности я хочу переключиться на OAuth2RestOperations.

Я гуглил, но, к сожалению, я не нашел подходящей конфигурации.

Я хочу настроить OAuth2RestOperations на сервере ресурсов и установитьтекущий токен в OAuth2RestOperations, отправляемый клиентом

Конфигурация сервера ресурсов:

@SpringBootApplication
@EnableResourceServer
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class ResourceApplication {

    public static void main(String[] args) {
        SpringApplication.run(ResourceApplication.class, args);
    }
}

И конфигурация клиента:

@Configuration
@EnableOAuth2Sso
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {

    //This is needed on the gateway so OAuth2TokenRelayFilter do check the validation of token and refresh it.


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf()
                .disable()
                .headers().cacheControl().disable()
                .and()
                .httpBasic().disable()
                .authorizeRequests()
                .requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll()
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
                .mvcMatchers("/uaa/**", "/login","/favicon.ico","/error**").permitAll()
                .anyRequest().authenticated()
                .and()
                .logout()
                .permitAll();
    }

}

и

@SpringBootApplication
@EnableZuulProxy
public class GatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }
}
...