如何在ClientIdentity中使用getAttributeValue()进行结构填充?

问题描述 投票:0回答:1

我在超级账本结构中使用nodejs sdk,在我的链代码中,我需要获取执行交易的身份(sam)的名称。

{"name":"sam","mspid":"Org1MSP","roles":null,"affiliation":"","enrollmentSecret":"","enrollment":{"signingIdentity":"5aad871581d63447218743ee79289c0c6f531a032d3cf1f0be32083e8c0cbaea","identity":{"certificate":"-----BEGIN CERTIFICATE-----\nMIICizCCAjGgAwIBAgIUQq0tPLPFsLujCsRclZc9POmAh6EwCgYIKoZIzj0EAwIw\nczELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh\nbiBGcmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMT\nE2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTkxMTE5MDU0ODAwWhcNMjAxMTE4MDU1\nMzAwWjBAMTAwDQYDVQQLEwZjbGllbnQwCwYDVQQLEwRvcmcxMBIGA1UECxMLZGVw\nYXJ0bWVudDExDDAKBgNVBAMTA3NhbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA\nBGbtyGsC9QNBlO0Z5sumDzEaYR4m8GJpXW2f8Qlvjt79IzCWDjGwFePAIOfnUojz\naDbr0VHgpnWOtUIKUqTVPOujgdUwgdIwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFCR78iTBbBSCYjxajhOMyYrWDO8iMCsGA1UdIwQkMCKA\nIHWD+xHmJ7l80nLYW67w4+Bftya5oeDfD9d4KXfnqn3NMGYGCCoDBAUGBwgBBFp7\nImF0dHJzIjp7ImhmLkFmZmlsaWF0aW9uIjoib3JnMS5kZXBhcnRtZW50MSIsImhm\nLkVucm9sbG1lbnRJRCI6InNhbSIsImhmLlR5cGUiOiJjbGllbnQifX0wCgYIKoZI\nzj0EAwIDSAAwRQIhAJcIBDcygI6Z67ueo46b3WnJCZr+D1HzhaWNp6Lj/+7oAiA6\nRRc9JjnWFvaFaqIJTyNaE7/HFXTXKr+HIkig/UEZpQ==\n-----END CERTIFICATE-----\n"}}}

我使用了下面的代码

async approve(ctx) {
    try {
        const owId = new clientIdentity(ctx.stub).getAttributeValue('name')
        return owId.toString();
     } catch(error) {
            console.log(error);
            throw new Error(`Low on amount`);
     }

}

但以上代码未返回名称或任何其他属性。帮助将不胜感激!

hyperledger-fabric hyperledger-chaincode hyperledger-fabric-sdk-js
1个回答
0
投票

您没有名为“名称”的属性。如果您分析X.509证书...

openssl x509 -text -noout -in yourcert.pem

...您得到...

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            42:ad:2d:3c:b3:c5:b0:bb:a3:0a:c4:5c:95:97:3d:3c:e9:80:87:a1
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: C = US, ST = California, L = San Francisco, O = org1.example.com, CN = ca.org1.example.com
        Validity
            Not Before: Nov 19 05:48:00 2019 GMT
            Not After : Nov 18 05:53:00 2020 GMT
        Subject: OU = client + OU = org1 + OU = department1, CN = sam
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:66:ed:c8:6b:02:f5:03:41:94:ed:19:e6:cb:a6:
                    0f:31:1a:61:1e:26:f0:62:69:5d:6d:9f:f1:09:6f:
                    8e:de:fd:23:30:96:0e:31:b0:15:e3:c0:20:e7:e7:
                    52:88:f3:68:36:eb:d1:51:e0:a6:75:8e:b5:42:0a:
                    52:a4:d5:3c:eb
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier: 
                24:7B:F2:24:C1:6C:14:82:62:3C:5A:8E:13:8C:C9:8A:D6:0C:EF:22
            X509v3 Authority Key Identifier: 
                keyid:75:83:FB:11:E6:27:B9:7C:D2:72:D8:5B:AE:F0:E3:E0:5F:B7:26:B9:A1:E0:DF:0F:D7:78:29:77:E7:AA:7D:CD

            1.2.3.4.5.6.7.8.1: 
                {"attrs":{"hf.Affiliation":"org1.department1","hf.EnrollmentID":"sam","hf.Type":"client"}}
    Signature Algorithm: ecdsa-with-SHA256
         30:45:02:21:00:97:08:04:37:32:80:8e:99:eb:bb:9e:a3:8e:
         9b:dd:69:c9:09:9a:fe:0f:51:f3:85:a5:8d:a7:a2:e3:ff:ee:
         e8:02:20:3a:45:17:3d:26:39:d6:16:f6:85:6a:a2:09:4f:23:
         5a:13:bf:c7:15:74:d7:2a:bf:87:22:48:a0:fd:41:19:a5

您的属性键是:

  • hf.Affiliation
  • hf.EnrollmentID
  • hf.Type

没有“名称”属性。您可能正在寻找“ hf.EnrollmentID”。

© www.soinside.com 2019 - 2024. All rights reserved.