使用Xero的Java SDK支持多个私有应用的认证?

Using Xero's Java SDK to support authentication of multiple private apps?

我正在通过密钥证书文件和适当的消费者密钥和机密使用 Xero's Java SDK to build my application. My application is now facing a requirement of having to work with several Xero private apps, therefore I need to manage and performing authentication (OAuth)

我想非常简单地将这些详细信息存储在数据库中 table 并或多或少地适当地检索它们,如下所示:

    // create a Xero config instance
    Config config = JsonConfig.getInstance();

    // build config file - details will be obtained from database
    config.setConsumerKey("key");
    config.setConsumerSecret("secret");

    // this line will have me authenticate with the Xero service using the config file built
    XeroClient client = new XeroClient(config);

这种方法的问题是我没有指向 public_privatekey.pfx 密钥文件,这是身份验证所需的另一个基本元素。

我不这样做的原因是 SDK 似乎不支持使用 Config 实例,如上所示 - 我没有选择 select 适当的 public_private.pfx 文件(而且我也没有选择只加载文件内容的选项)。一个 SDK 会缺少一个功能对我来说没有意义,因此质疑我的方法;是我忽略了一个细节还是我处理问题的方式不正确?

查看自定义请求签名标题下的自述文件

https://github.com/XeroAPI/Xero-Java/blob/master/README.md

您可以使用 public XeroClient(Config config, SignerFactory signerFactory) 构造函数提供您自己的签名机制。只需使用您的实现来实现 SignerFactory 接口。

您还可以使用 public RsaSignerFactory(InputStream privateKeyInputStream, String privateKeyPassword) 构造函数提供 RsaSignerFactory,以从任何 InputStream 获取密钥。