В настоящее время мы используем сторонний библиотечный credclient для получения учетных данных, которые имеют методы для получения учетных данных и обновления учетных данных.
Код: Выделить всё
@Bean
@RefreshScope
public CredentialsProvider getCredentialsProvider(){
return FixedCredentialsProvider.create(CredClient.createInstance(authURL, host, clientId, secret).getCredential(projId,serviceAccount).createdScoped(defaultServiceScopes()));
}
@Autowired
private PubSubTemplate pubSubTemplate;
pubSubTemplate.publish(topic, message);
он работает нормально, когда учетные данные истек, мы перезагружены перезапустить приложение, потому что оно дает недействительную аутентификацию сообщение об ошибке при публикации сообщения. Я попытался удалить учетные данные боб из контекста и зарегистрированного вручную, но это не повторно повторно определяет Pubsubtemplate . В качестве альтернативы я использовал Annotation на CredenialsProvider и опубликовал Annotation , хотя обновлял множество бобов, но не это.
Как обновить учетные данные без перезапуска>
Подробнее здесь:
https://stackoverflow.com/questions/797 ... mplementat