私は Spring Cloud OAuth を使用しています。https://github.com/spring-cloud-samples/sso/ の公式サンプルをGitLab ( https://about.gitlab.com/ ) を OAuth プロバイダーとして使用しています。
問題は、GitLab がタイプ「ベアラー」のトークンを送信し、Spring Cloud SSO がトークンを取得し、形式の
Authorization bearer xxxxxxx
トークンのみを受け入れるドキュメントに従って、GitLab サーバーによって拒否される形式のヘッダーを送信することです
Authorization Bearer xxxxxxx
。
これはおそらく GitLab サーバーのバグですが、Spring Cloud SSO でこの問題を回避する方法はありますか。
アップデート 19.03.:
これは、SpringCloud-sample の SsoApplication.java で試したものです。
@Autowired
private OAuth2RestTemplate oAuth2RestTemplate;
@PostConstruct
private void modifyOAuthRestTemplate() {
this.oAuth2RestTemplate.setAuthenticator(new OAuth2RequestAuthenticator() { // this line gets called
@Override
public void authenticate(OAuth2ProtectedResourceDetails resource, OAuth2ClientContext clientContext, ClientHttpRequest request) {
// this line is never called
}
});
}
新しく注入された OAuth2ProtectedResourceDetails の代わりに、「元の」ものが呼び出されます。サンプルアプリで認証しようとするたびに