到目前为止,我已经添加了这些代码。
@Bean
protected OAuth2ProtectedResourceDetails resource() {
ResourceOwnerPasswordResourceDetails resource = new ResourceOwnerPasswordResourceDetails();
resource.setAccessTokenUri(tokenUrl);
resource.setClientId(clientId);
resource.setClientSecret(clientSecret);
resource.setClientAuthenticationScheme(AuthenticationScheme.form);
resource.setUsername(username);
resource.setPassword(password + passwordToken);
return resource;
}
@Bean
public OAuth2RestOperations restTemplateOauth2() {
return new OAuth2RestTemplate(resource(), new DefaultOAuth2ClientContext(new DefaultAccessTokenRequest()));
}
第一次尝试连接很不错。但是一段时间后,令牌没有刷新,并且出现401未经授权的错误。当我检查令牌字段时,refreshToken和到期为空。这是问题的原因吗?
经过研究,他们建议将此行添加到application.properties中,但不要更改。
security.oauth2.client.grant-type=password,refresh_token