从多用户休息服务器运行Hyperldger Query时出现错误“指定了无效或无关的参数access_token”

时间:2018-09-06 03:28:13

标签: hyperledger-fabric hyperledger-composer

我正在使用基于ldap的身份验证的多用户Rest服务器。我可以成功登录,获取访问令牌并执行任意数量的交易。为此事务运行的Chaincode也可以运行我生成的查询。但是问题是,当使用相同的访问令牌时,我无法直接从Web浏览器运行此查询。我遇到此错误,该错误表示运行查询时access_token无效或无关紧要。但是,当我尝试在没有访问令牌的情况下运行查询时,它给我的错误是“ AUTHORIZATION_REQUIRED”,据我的理解是可以的。同样,此查询在单用户休息服务器中运行良好。

使用具有从LDAP生成的访问令牌的多用户Rest服务器运行查询时,我需要执行其他操作吗?

  

“ {”错误“:{”状态代码“:500,”名称“:”错误“,”消息“:” 2未知:错误   执行链码:事务返回失败:错误: 无效   或无关参数access_token已   指定“,”代码“:2,”元数据“:{” _ internal_repr“:{}},”详细信息“:”错误   执行链码:事务返回失败:错误:无效   或无关参数access_token已被   指定“,”堆栈“:”错误:2 UNKNOWN:执行链码时出错:   事务返回失败:错误:无效或无关   在新位置指定了参数access_token \ n   createStatusError   (/home/composer/.npm-global/lib/node_modules/composer-rest-server/node_modules/grpc/src/client.js:64:15)\n在   /home/composer/.npm-global/lib/node_modules/composer-rest-server/node_modules/grpc/src/client.js:583:15“}}”

1 个答案:

答案 0 :(得分:0)

实际上,我们已经进行了一些更改,以使其真正起作用,这与传递访问令牌的方式有关。在超级账本文档中,有两种方法可以传递令牌:

  
      
  1. curl -v http://localhost:3000/api/system/ping?access_token=xxxxx
  2.   
  3. curl -v -H'X-Access-Token:xxxxx'http://localhost:3000/api/system/ping
  4.   

我正在使用第一种方法传递访问令牌,并且我的所有事务都正常运行,但是查询失败,似乎访问令牌已传递给查询,并且它无法识别参数。所以我尝试了第二种方法,并且能够运行查询。 我认为Hyperleder论坛应该提及此类限制。