Talend tREST 组件 cookie 提取

问题描述 投票:0回答:1

除了以下帮助我完成此任务的答案外,还提供额外的上下文:

  1. tRowGenerator_1 - 用于简单地允许使用 tMap_1,这里没什么特别的
  2. tMap_1 - 在这里,我构建了要在调用中使用的有效负载,并将其传递给 tRESTClient_1 中名为 string 的变量。这就是我所缺少的。
  3. tRESTClient_1 - 执行帖子以获取身份验证令牌,这里也没什么特别的。
  4. 我们现在需要解压响应中返回的 cookie 以进行后续调用。
String str[] = ((java.util.Map)globalMap.get("tRESTClient_1_HEADERS")).get("Set-Cookie").toString().replace("[","").replace("]","").replace(",",";").split("; ");

String out = "";

for(int index = 0; index < str.length; index++){
    if(str[index].startsWith("JSESSIONID=") || str[index].startsWith("CSRFToken=") || str[index].startsWith("SecurityTokenURL=")){
        out = out + str[index] + "; ";
    }
};

globalMap.put("cookie", out);

将 cookie 的元素分配给名为 cookie 的变量。 5. 将 cookie 传递到您的下一个 REST 调用中:

我希望这对下一个需要小助手的人有所帮助。

我正在研究一个非常直接的概念证明,以使用 Talend 通过 POST 操作登录。

从应用程序端,我使用带有正文的 POST 来接收 cookie。但是,我不知道如何从端点的响应中获取 cookie 详细信息。

在我的论坛潜伏,似乎有两种方法:一种使用tREST,另一种使用tRESTClient。

使用 tREST,我可以成功发布到端点,但似乎无法检索响应标头或正文:

这是 tREST 组件属性:

此调用传递的 cookie 需要回收到后续调用中,以便它们进行身份验证。

我希望了解如何使用 tREST 或 tRESTClient 获取并传递 Cookie。我对 tRESTClient 的问题是我没有办法将正文传递给该组件。

有什么想法吗?

rest integration talend
1个回答
1
投票

关于你的最后一点 - 你可以通过进入 tRestClient 的流程将主体传递给 tRestClient。该流可以有一个包含 json 格式正文的“字符串”字段,并且该字段需要映射到组件输入架构中的“字符串”列。 如果在您的情况下,您还没有包含正文的流,则可以使用 tFixedFlowInput 组件生成它。

© www.soinside.com 2019 - 2024. All rights reserved.