在做fabric-ca 权限管理过程中遇到
/api/v1/register 401 25 "Invalid token in authorization header: Token signature validation failed"
检查证书等一系列都没有问题,
最后发现是由于中文问题导致post请求中乱码导致解析错误。
解决方法:对中文进行url encode
附上fabric-ca 自定义属性 sdk RegistrationRequest rr = new RegistrationRequest(username, ); rr.setSecret(secret); rr.setType(HFCAClient.HFCA_TYPE_CLIENT); rr.setMaxEnrollments(0); rr.addAttribute(new Attribute(HFCAClient.HFCA_ATTRIBUTE_HFREGISTRARROLES, "client,orderer,peer,user")); rr.addAttribute(new Attribute(HFCAClient.HFCA_ATTRIBUTE_HFREGISTRARDELEGATEROLES,"client,orderer,peer,user")); rr.addAttribute(new Attribute(HFCAClient.HFCA_ATTRIBUTE_HFREGISTRARATTRIBUTES,"*")); rr.addAttribute(new Attribute(HFCAClient.HFCA_ATTRIBUTE_HFGENCRL,"true")); rr.addAttribute(new Attribute(HFCAClient.HFCA_ATTRIBUTE_HFREVOKER,"true")); rr.addAttribute(new Attribute(HFCAClient.HFCA_ATTRIBUTE_HFAFFILIATIONMGR,"true")); rr.addAttribute(new Attribute(HFCAClient.HFCA_ATTRIBUTE_HFINTERMEDIATECA,"true")); rr.addAttribute(new Attribute("orgName", URLEncoder.encode(orgName),true));//自定义属性 rr.addAttribute(new Attribute("orgType",1,true));//自定义属性 String enrollmentSecret = instance.register(rr, adminContext);