除いて取り組んでいるこのプロジェクトでは、サンプルprojectを作成しているがトリックをしましたが、私はこれが最善の解決策
@Component
public class Interceptor implements RequestInterceptor {
private final OAuth2RestTemplate template;
public Interceptor(ClientCredentialsResourceDetails oauth2RemoteResource) {
template = new OAuth2RestTemplate(oauth2RemoteResource, new DefaultOAuth2ClientContext(new DefaultAccessTokenRequest()));
}
@Override
public void apply(RequestTemplate requestTemplate) {
requestTemplate.header("Authorization", "bearer " + template.getAccessToken().getValue());
}
}
であることを確認していません
より良いアプローチ
より読みになった後、私はその春、雲を見つけました-securityは既にインターセプタを持っているので、タイプOAuth2FeignRequestInterceptor
のbeanを以下のように宣言するだけです。
@Configuration
@EnableOAuth2Client
@Slf4j
public class OAuth2FeignAutoConfiguration {
@Bean
public OAuth2FeignRequestInterceptor oAuth2FeignRequestInterceptor(OAuth2ClientContext oauth2ClientContext, OAuth2ProtectedResourceDetails details) {
return new OAuth2FeignRequestInterceptor(oauth2ClientContext,details);
}
}