【发布时间】:2018-07-16 12:07:52
【问题描述】:
有没有办法在链码中获取用户的从属关系? 我在链码中找不到用于获取用户从属关系的 API。
【问题讨论】:
有没有办法在链码中获取用户的从属关系? 我在链码中找不到用于获取用户从属关系的 API。
【问题讨论】:
请查看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")
}
【讨论】:
从属关系在 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)
【讨论】: