【问题标题】:oAuth 1.0 Authentication using Karate Framework [duplicate]使用空手道框架的 oAuth 1.0 身份验证 [重复]
【发布时间】:2019-03-20 07:50:51
【问题描述】:

我在 0auth 1.0 身份验证测试的空手道框架中看不到任何示例或文档。 我在标题中提供授权详细信息,如下所示并面临问题。

Given url 'https://api.twitter.com/1.1/statuses/update.json'
And header Content-Type = 'application/json'
And header Authorization = 'OAuth oauth_consumer_key="********",oauth_consumer_Secret="**********",oauth_token="********",oauth_token_secret="*********"'
And form field status = 'I am tweeting using karate'
When method post
Then status 201

【问题讨论】:

  • 您能否重新格式化您的帖子以使标题更清晰?尝试使用代码示例按钮,以便更易于阅读...

标签: oauth karate


【解决方案1】:

最近添加了一个:commit

肉在Java代码中:

package demo.oauth;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import static org.apache.commons.codec.digest.DigestUtils.md5Hex;
import static org.apache.commons.codec.digest.DigestUtils.sha256Hex;

public class Signer {

public static void sign(String token, Map<String, String> params) {
        List<String> list = new ArrayList();
        String tokenClientSlat = "";
        for (String key : params.keySet()) {
            if (key.equals("token_client_salt")) {
                tokenClientSlat = params.get(key);
            }
            String paramString = key + "=" + params.get(key);
            list.add(paramString);
        }
        Collections.sort(list);
        StringBuilder sb = new StringBuilder();
        for (String s : list) {
            sb.append(s);
        }
        sb.append(token);
        String sig = md5Hex(sb.toString());
        String tokenSig = sha256Hex(sig + tokenClientSlat);
        params.put("sig", sig);
        params.put("__NStokensig", tokenSig);
    }        
}

然后是功能:

* def Signer = Java.type('demo.oauth.Signer')    
* def params =
"""
{ 
  'userId': '399645532', 
  'os':'android', 
  'client_key': '3c2cd3f3',
  'token': '141a649988c946ae9b5356049c316c5d-838424771',
  'token_client_salt': 'd340a54c43d5642e21289f7ede858995'
}
"""
* eval Signer.sign('382700b563f4', params)
* path 'echo'
* form fields params
* method post
* status 200

【讨论】:

  • 感谢 Peter,我正在寻找 Windows Web 身份验证,并且我从 Api 文档中获得了以下身份验证详细信息。您能否让我知道如何使用以下详细信息工作。 yLbgd2GV******SREsg6d5a(API 密钥) FigmrRBlc**********giH1aNjKiHPHsWzss1jyaG(API 密钥)1029146120902074368-wUIpeKQZ************SfzpMaNU(访问令牌)dhmXk7hOrbR0w** *snitQlMpE(访问令牌秘密)
  • @VenkataAddala 请自己尝试解决这个问题,我不能再帮你了。也许别人可以
猜你喜欢
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多