Существует сервер авторизации (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);
}
}