我正在使用wso2 esb作为集成总线来处理项目,并且esb正在集群环境中运行。现在,ESB将通过连接器连接到第三方应用程序(如salesforce),salesforce将向esb连接器发出accessstoken。这里有两个问题:
accesstoken将每2小时过期,因此如何避免请求因过期的accesstoken而无效(通常,系统需要每2小时获取一个新令牌)。我在ESB样本中没有看到这种配置。
答案 0 :(得分:2)
WSO2 Salesforce REST连接器在store中发布,支持令牌刷新,并支持在群集环境中共享访问令牌。
<salesforcerest.init>
<accessToken>{$ctx:accessToken}</accessToken>
<apiUrl>{$ctx:apiUrl}</apiUrl>
<clientId>{$ctx:clientId}</clientId>
<clientSecret>{$ctx:clientSecret}</clientSecret>
<refreshToken>{$ctx:refreshToken}</refreshToken>
<hostName>{$ctx:hostName}</hostName>
<apiVersion>{$ctx:apiVersion}</apiVersion>
<registryPath>{$ctx:registryPath}</registryPath>
<intervalTime>{$ctx:intervalTime}</intervalTime>
<salesforcerest.init>
在上面的配置中,intervalTime以毫秒为单位来检查访问令牌的有效性。例如,Salesforce访问令牌在2小时内过期。所以你需要以毫秒为单位给出intervalTime不到2小时。令牌过期后,当您调用连接器方法时,它将检查访问令牌的有效性。如果它已过期,连接器将使用刷新令牌刷新访问令牌并将其保存在注册表中。在上面的配置中,您可以提供注册表路径。如果您未在配置中传递注册表路径,则连接器会将访问令牌保存在默认注册表路径中。
在WSO2 ESB部署中,配置注册表通常在群集节点之间安装和共享,因此您可以在群集环境中共享访问令牌
您可以参考wso2 documentation和blog获取连接器配置。 Connector zip文件可以从here下载。转到该链接,然后点击下载连接器&#39;按钮并按照documentation进行配置。
答案 1 :(得分:0)
在上面的配置中,您必须将注册表路径指定为&#34; connectors /&#34; connectorname&#34;&#34;。如果您想从用户名密码流中获取accessToken,则无需担心accessToken过期(仅适用于Salesforce REST连接器)。您可以关注用户名密码流here。在其他情况下,例如Google API连接器(示例Gmail),您不需要提供注册表路径,因为连接器本身会创建一个注册表位置来存储accessToken。