wso2 esb connector如何在集群环境中共享accesstoken

时间:2016-10-11 14:45:55

标签: wso2 wso2esb

我正在使用wso2 esb作为集成总线来处理项目,并且esb正在集群环境中运行。现在,ESB将通过连接器连接到第三方应用程序(如salesforce),salesforce将向esb连接器发出accessstoken。这里有两个问题:

1如何定期刷新访问令牌

accesstoken将每2小时过期,因此如何避免请求因过期的accesstoken而无效(通常,系统需要每2小时获取一个新令牌)。我在ESB样本中没有看到这种配置。

2如何在集群环境中共享访问令牌

2 个答案:

答案 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 documentationblog获取连接器配置。 Connector zip文件可以从here下载。转到该链接,然后点击下载连接器&#39;按钮并按照documentation进行配置。

答案 1 :(得分:0)

在上面的配置中,您必须将注册表路径指定为&#34; connectors /&#34; connectorname&#34;&#34;。如果您想从用户名密码流中获取accessToken,则无需担心accessToken过期(仅适用于Salesforce REST连接器)。您可以关注用户名密码流here。在其他情况下,例如Google API连接器(示例Gmail),您不需要提供注册表路径,因为连接器本身会创建一个注册表位置来存储accessToken。