package com.yl.service.fabricca; import cn.hutool.core.util.URLUtil; import com.yl.exceptions.RRException; import lombok.extern.slf4j.Slf4j; import org.hyperledger.fabric.gateway.*; import org.hyperledger.fabric.sdk.identity.X509Enrollment; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import javax.annotation.PostConstruct; import java.io.IOException; import java.security.cert.CertificateException; /** * FabricStore * * @author 王小虎 * @date 2022-03-11 10:29 */ @Slf4j @Service public class WalletStore { private Wallet wallet; private static final String COUCHDB_HOST = "http://admin:adminpw@192.168.2.55:5984"; private static final String WALLET_DB = "crm-wallet"; @PostConstruct public void init() { try { wallet = Wallets.newCouchDBWallet(URLUtil.url(COUCHDB_HOST), WALLET_DB); log.info("已存在钱包列表--->{}", wallet.list().toString()); } catch (IOException e) { log.error("初始化钱包失败"); throw new RRException(e); } } /** * 存储身份信息到钱包缓存 * * @param tmpUser tmpUser */ public void saveIdentity(IntermediateUser tmpUser) { if (ObjectUtils.isEmpty(tmpUser)) { return; } try { wallet.put(tmpUser.getAccount() + ":" + tmpUser.getAffiliation(), Identities.newX509Identity(tmpUser.getMspId(), tmpUser.getEnrollment())); } catch (IOException | CertificateException e) { log.error("存储本地证书失败-->" + tmpUser.getAccount() + ":" + tmpUser.getAffiliation()); } } /** * 从本地钱包中获取identity * * @param account account * @param affiliation affiliation * @return Identity */ public Identity getIdentity(String account, String affiliation) { log.info("缓存中获取User:{},{}", account, affiliation); Identity identity = null; try { identity = wallet.get(account + ":" + affiliation); } catch (IOException e) { log.error("查询本地证书失败-->" + account + ":" + affiliation); } return identity; } /** * 从本地钱包中的证件信息中获取Enrollment * * @param account account * @param affiliation affiliation * @return X509Enrollment */ public X509Enrollment getEnrollment(String account, String affiliation) { X509Identity identity = (X509Identity) getIdentity(account, affiliation); if (ObjectUtils.isEmpty(identity)) { return null; } return new X509Enrollment(identity.getPrivateKey(), Identities.toPemString(identity.getCertificate())); } }
04-17
5271
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交