如何在Chaincode中获得用户的隶属关系

时间:2018-07-16 12:07:52

标签: hyperledger-fabric

有没有办法以链码形式获得用户的隶属关系? 我找不到在链码中获得用户隶属关系的API。

2 个答案:

答案 0 :(得分:0)

请查看core/chaincode/lib中提供的cid lib文档:

// Get the client ID object
id, err := cid.New(stub)
if err != nil {
   // Handle error
}
mspid, err := id.GetMSPID()
if err != nil {
   // Handle error
}
switch mspid {
   case "org1MSP":
      err = id.AssertAttributeValue("attr1", "true")
   case "org2MSP":
      err = id.AssertAttributeValue("attr2", "true")
   default:
      err = errors.New("Wrong MSP")
}

答案 1 :(得分:0)

联盟是在OU中的证书主题内编码的。 例如,org1.department1用户的主题

'subject': 'CN=33932069-6fce-4b16-8072-6715d591f35b,OU=client+OU=org1+OU=department1,O=Org1'

因此,可以轻松地从链码进行访问

invoker, err := identity.FromStub(c.Stub())
if err != nil {
    return nil, err
}

fmt.Printf(invoker.Cert.Subject.OrganizationalUnit)