From 23df2d620abaf4375ff91150805bca1114da4c70 Mon Sep 17 00:00:00 2001 From: Arnaud J Le Hors Date: Wed, 20 May 2020 10:03:10 +0200 Subject: [PATCH] FGJ-84 Update Fabcar Java app to 2.1.1 (#167) This updates the fabcar java application to work with the fabric gateway java version 2.1.1. It also changes pom.xml to produce a jar file that is self contained for ease of use. Signed-off-by: Arnaud J Le Hors --- fabcar/java/pom.xml | 33 +++++++++++++++++-- .../src/main/java/org/example/ClientApp.java | 3 +- .../main/java/org/example/EnrollAdmin.java | 29 ++++++++-------- .../main/java/org/example/RegisterUser.java | 20 +++++------ 4 files changed, 58 insertions(+), 27 deletions(-) diff --git a/fabcar/java/pom.xml b/fabcar/java/pom.xml index cff8f333..9bdcb653 100644 --- a/fabcar/java/pom.xml +++ b/fabcar/java/pom.xml @@ -4,7 +4,7 @@ 4.0.0 fabcar-java fabcar-java - 2.0.0-SNAPSHOT + 2.1.1 @@ -15,6 +15,35 @@ 1.8 + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.0 + + + + package + + shade + + + + + false + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + @@ -28,7 +57,7 @@ org.hyperledger.fabric fabric-gateway-java - 1.4.3 + 2.1.1 org.junit.platform diff --git a/fabcar/java/src/main/java/org/example/ClientApp.java b/fabcar/java/src/main/java/org/example/ClientApp.java index b4fad8de..d4c6fee3 100755 --- a/fabcar/java/src/main/java/org/example/ClientApp.java +++ b/fabcar/java/src/main/java/org/example/ClientApp.java @@ -11,6 +11,7 @@ import org.hyperledger.fabric.gateway.Contract; import org.hyperledger.fabric.gateway.Gateway; import org.hyperledger.fabric.gateway.Network; import org.hyperledger.fabric.gateway.Wallet; +import org.hyperledger.fabric.gateway.Wallets; public class ClientApp { @@ -21,7 +22,7 @@ public class ClientApp { public static void main(String[] args) throws Exception { // Load a file system based wallet for managing identities. Path walletPath = Paths.get("wallet"); - Wallet wallet = Wallet.createFileSystemWallet(walletPath); + Wallet wallet = Wallets.newFileSystemWallet(walletPath); // load a CCP Path networkConfigPath = Paths.get("..", "..", "test-network", "organizations", "peerOrganizations", "org1.example.com", "connection-org1.yaml"); diff --git a/fabcar/java/src/main/java/org/example/EnrollAdmin.java b/fabcar/java/src/main/java/org/example/EnrollAdmin.java index ace0449f..8b3e2f59 100644 --- a/fabcar/java/src/main/java/org/example/EnrollAdmin.java +++ b/fabcar/java/src/main/java/org/example/EnrollAdmin.java @@ -8,7 +8,9 @@ import java.nio.file.Paths; import java.util.Properties; import org.hyperledger.fabric.gateway.Wallet; -import org.hyperledger.fabric.gateway.Wallet.Identity; +import org.hyperledger.fabric.gateway.Wallets; +import org.hyperledger.fabric.gateway.Identities; +import org.hyperledger.fabric.gateway.Identity; import org.hyperledger.fabric.sdk.Enrollment; import org.hyperledger.fabric.sdk.security.CryptoSuite; import org.hyperledger.fabric.sdk.security.CryptoSuiteFactory; @@ -33,22 +35,21 @@ public class EnrollAdmin { caClient.setCryptoSuite(cryptoSuite); // Create a wallet for managing identities - Wallet wallet = Wallet.createFileSystemWallet(Paths.get("wallet")); + Wallet wallet = Wallets.newFileSystemWallet(Paths.get("wallet")); // Check to see if we've already enrolled the admin user. - boolean adminExists = wallet.exists("admin"); - if (adminExists) { - System.out.println("An identity for the admin user \"admin\" already exists in the wallet"); - return; - } + if (wallet.get("admin") != null) { + System.out.println("An identity for the admin user \"admin\" already exists in the wallet"); + return; + } - // Enroll the admin user, and import the new identity into the wallet. - final EnrollmentRequest enrollmentRequestTLS = new EnrollmentRequest(); - enrollmentRequestTLS.addHost("localhost"); - enrollmentRequestTLS.setProfile("tls"); - Enrollment enrollment = caClient.enroll("admin", "adminpw", enrollmentRequestTLS); - Identity user = Identity.createIdentity("Org1MSP", enrollment.getCert(), enrollment.getKey()); - wallet.put("admin", user); + // Enroll the admin user, and import the new identity into the wallet. + final EnrollmentRequest enrollmentRequestTLS = new EnrollmentRequest(); + enrollmentRequestTLS.addHost("localhost"); + enrollmentRequestTLS.setProfile("tls"); + Enrollment enrollment = caClient.enroll("admin", "adminpw", enrollmentRequestTLS); + Identity user = Identities.newX509Identity("Org1MSP", enrollment); + wallet.put("admin", user); System.out.println("Successfully enrolled user \"admin\" and imported it into the wallet"); } } diff --git a/fabcar/java/src/main/java/org/example/RegisterUser.java b/fabcar/java/src/main/java/org/example/RegisterUser.java index 0f56747e..c116df49 100644 --- a/fabcar/java/src/main/java/org/example/RegisterUser.java +++ b/fabcar/java/src/main/java/org/example/RegisterUser.java @@ -10,7 +10,10 @@ import java.util.Properties; import java.util.Set; import org.hyperledger.fabric.gateway.Wallet; -import org.hyperledger.fabric.gateway.Wallet.Identity; +import org.hyperledger.fabric.gateway.Wallets; +import org.hyperledger.fabric.gateway.Identities; +import org.hyperledger.fabric.gateway.Identity; +import org.hyperledger.fabric.gateway.X509Identity; import org.hyperledger.fabric.sdk.Enrollment; import org.hyperledger.fabric.sdk.User; import org.hyperledger.fabric.sdk.security.CryptoSuite; @@ -36,22 +39,19 @@ public class RegisterUser { caClient.setCryptoSuite(cryptoSuite); // Create a wallet for managing identities - Wallet wallet = Wallet.createFileSystemWallet(Paths.get("wallet")); + Wallet wallet = Wallets.newFileSystemWallet(Paths.get("wallet")); // Check to see if we've already enrolled the user. - boolean userExists = wallet.exists("appUser"); - if (userExists) { + if (wallet.get("appUser") != null) { System.out.println("An identity for the user \"appUser\" already exists in the wallet"); return; } - userExists = wallet.exists("admin"); - if (!userExists) { + X509Identity adminIdentity = (X509Identity)wallet.get("admin"); + if (adminIdentity == null) { System.out.println("\"admin\" needs to be enrolled and added to the wallet first"); return; } - - Identity adminIdentity = wallet.get("admin"); User admin = new User() { @Override @@ -85,7 +85,7 @@ public class RegisterUser { @Override public String getCert() { - return adminIdentity.getCertificate(); + return Identities.toPemString(adminIdentity.getCertificate()); } }; } @@ -103,7 +103,7 @@ public class RegisterUser { registrationRequest.setEnrollmentID("appUser"); String enrollmentSecret = caClient.register(registrationRequest, admin); Enrollment enrollment = caClient.enroll("appUser", enrollmentSecret); - Identity user = Identity.createIdentity("Org1MSP", enrollment.getCert(), enrollment.getKey()); + Identity user = Identities.newX509Identity("Org1MSP", adminIdentity.getCertificate(), adminIdentity.getPrivateKey()); wallet.put("appUser", user); System.out.println("Successfully enrolled user \"appUser\" and imported it into the wallet"); }