首页 > 解决方案 > 如何正确扩展 Credential 类并覆盖使用其内部锁的方法

问题描述

我正在编写一个使用 google-oauth-java-client 的客户端。在我的代码中,我需要扩展 Credential (com.google.api.client.auth.oauth2.Credential) 类并覆盖该方法:

布尔句柄响应(com.google.api.client.http.HttpRequest 请求,com.google.api.client.http.HttpResponse 响应,布尔支持重试)

不幸的是,这个方法与许多其他方法共享一个 Credential 锁,没有方法可以访问它,并且属性的可见性是私有的。尽管如此,该类在评论和文档中明确提到:“子类可能会覆盖”。考虑到这个锁,扩展这个类的正确方法是什么?

我想在非常特殊的情况下产生错误 400 时强制刷新令牌,除了实际的 401,所以我认为我应该使用锁。

标签: javagoogle-oauth-java-client

解决方案


推荐阅读