在Fabric链码开发过程中,有时候需要获取调用链码的用户信息,比如在一个数据共享的链码中,需要根据用户的信息对数据进行限制访问。幸运的是,Fabric提供了ChaincodeStubInterface接口,其中GetCreator方法可以获取提交请求的用户的相关信息。接口描述如下:
// GetCreator returns `SignatureHeader.Creator` (e.g. an identity)
// of the `SignedProposal`. This is the identity of the agent (or user)
// submitting the transaction.
GetCreator() ([]byte, error)
从GetCreator接口描述中可以看出,GetCreator方法返回的是一个byte数组,而将byte数组转换为string对应的是调用用户identity信息序列号的字符串,如下所示:
\n\007DEFAULT\022\272\006-----BEGIN CERTIFICATE-----\nMIICNjCCAd2gAwIBAgIRAMnf9/dmV9RvCCVw9pZQUfUwCgYIKoZIzj0EAwIwgYEx\nCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4g\nRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMQwwCgYDVQQLEwND\nT1AxHDAaBgNVBAMTE2NhLm9yZzEuZXhhbXBsZS5