Merge branch 'features/enrollAdmin' into develop
This commit is contained in:
commit
c0d9b24d6b
BIN
msp/Org1/admin.context
Normal file
BIN
msp/Org1/admin.context
Normal file
Binary file not shown.
|
@ -1,7 +1,10 @@
|
|||
package blockchain.client;
|
||||
|
||||
import blockchain.user.UserContext;
|
||||
import org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi;
|
||||
import blockchain.utility.Util;
|
||||
import org.apache.log4j.BasicConfigurator;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.hyperledger.fabric.sdk.Enrollment;
|
||||
import org.hyperledger.fabric.sdk.exception.CryptoException;
|
||||
import org.hyperledger.fabric.sdk.exception.InvalidArgumentException;
|
||||
import org.hyperledger.fabric.sdk.security.CryptoSuite;
|
||||
|
@ -12,14 +15,15 @@ import java.net.MalformedURLException;
|
|||
import java.util.Properties;
|
||||
|
||||
public class CAClientWrapper {
|
||||
private static Logger logger = Logger.getLogger(CAClientWrapper.class);
|
||||
private String caUrl;
|
||||
private Properties properties;
|
||||
private HFCAClient hfcaClient;
|
||||
private UserContext adminContext;
|
||||
|
||||
public void setAdminContext(UserContext adminContext) {
|
||||
this.adminContext = adminContext;
|
||||
}
|
||||
public void setAdminContext(UserContext adminContext) { this.adminContext = adminContext; }
|
||||
|
||||
public UserContext getAdminContext(){ return adminContext; }
|
||||
|
||||
public HFCAClient getHfcaClient(){
|
||||
return hfcaClient;
|
||||
|
@ -37,11 +41,28 @@ public class CAClientWrapper {
|
|||
hfcaClient.setCryptoSuite(cryptoSuite);
|
||||
}
|
||||
|
||||
//TODO
|
||||
public UserContext enrollAdmin(String username, String password) throws Exception{
|
||||
UserContext userContext = new UserContext();
|
||||
public UserContext enrollAdmin(String username, String password, String affiliation) throws Exception{
|
||||
BasicConfigurator.configure();
|
||||
UserContext checkAdmin;
|
||||
checkAdmin = Util.readUserContext(affiliation, username);
|
||||
|
||||
return null;
|
||||
//SANITY CHECK
|
||||
if(adminContext.getName().isEmpty()) throw new NullPointerException();
|
||||
|
||||
if(checkAdmin!=null){
|
||||
logger.warn("Admin already enrolled, skip");
|
||||
return checkAdmin;
|
||||
}
|
||||
|
||||
logger.info("Try hfcaClient.enroll");
|
||||
Enrollment enrollment = hfcaClient.enroll(username,password);
|
||||
|
||||
logger.info("Admin enrolled");
|
||||
adminContext.setEnrollment(enrollment);
|
||||
|
||||
logger.info("Write admin in msp directory");
|
||||
Util.writeUserContext(adminContext);
|
||||
return adminContext;
|
||||
}
|
||||
|
||||
|
||||
|
|
28
src/main/java/blockchain/configuration/Config.java
Normal file
28
src/main/java/blockchain/configuration/Config.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
package blockchain.configuration;
|
||||
|
||||
public class Config {
|
||||
|
||||
public static final String ORG1_MSP = "Org1MSP";
|
||||
|
||||
public static final String ORG1 = "Org1";
|
||||
|
||||
public static final String ADMIN = "admin";
|
||||
|
||||
public static final String ADMIN_PASSWORD = "adminpw";
|
||||
|
||||
public static final String CA_ORG1_URL = "http://vps577432.ovh.net:7054";
|
||||
|
||||
public static final String ORDERER_URL = "http://vps577432.ovh.net:7050";
|
||||
|
||||
public static final String ORDERER_NAME = "orderer.example.com";
|
||||
|
||||
public static final String CHANNEL_NAME = "mychannel";
|
||||
|
||||
public static final String CHAINCODE_NAME = "mycc";
|
||||
|
||||
public static final String ORG1_PEER_0 = "peer0.org1.example.com";
|
||||
|
||||
public static final String ORG1_PEER_0_URL = "http://vps577432.ovh.net:7051";
|
||||
|
||||
|
||||
}
|
|
@ -15,6 +15,8 @@ public class Util {
|
|||
ObjectOutputStream out = null;
|
||||
FileOutputStream fileOutputStream = null;
|
||||
try {
|
||||
logger.info("Write user "+userContext.getName()+" of "+userContext.getAffiliation());
|
||||
|
||||
String directoryPath = "msp/" + userContext.getAffiliation();
|
||||
String filePath = directoryPath + "/" + userContext.getName() + ".context";
|
||||
File directory = new File(directoryPath);
|
||||
|
|
40
src/test/java/blockchain/client/TestEnrollAdmin.java
Normal file
40
src/test/java/blockchain/client/TestEnrollAdmin.java
Normal file
|
@ -0,0 +1,40 @@
|
|||
package blockchain.client;
|
||||
|
||||
import blockchain.configuration.Config;
|
||||
import blockchain.user.UserContext;
|
||||
import org.hyperledger.fabric.sdk.Enrollment;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class TestEnrollAdmin {
|
||||
@Test
|
||||
public void TestAEnrollAdmin(){
|
||||
String caUrl = Config.CA_ORG1_URL;
|
||||
try {
|
||||
CAClientWrapper caClientWrapper = new CAClientWrapper(caUrl,null);
|
||||
|
||||
UserContext adminContext = new UserContext();
|
||||
adminContext.setName(Config.ADMIN);
|
||||
adminContext.setAffiliation(Config.ORG1);
|
||||
adminContext.setMspId(Config.ORG1_MSP);
|
||||
|
||||
caClientWrapper.setAdminContext(adminContext);
|
||||
|
||||
UserContext verifyUser = caClientWrapper.getAdminContext();
|
||||
assertEquals(Config.ADMIN, verifyUser.getName());
|
||||
assertEquals(Config.ORG1, verifyUser.getAffiliation());
|
||||
assertEquals(Config.ORG1_MSP, verifyUser.getMspId());
|
||||
|
||||
adminContext = caClientWrapper.enrollAdmin(adminContext.getName(),Config.ADMIN_PASSWORD,adminContext.getAffiliation());
|
||||
|
||||
//Check Admin Enrollement
|
||||
Enrollment enrollment = adminContext.getEnrollment();
|
||||
System.out.println("admin cert : "+enrollment.getCert());
|
||||
System.out.println("admin keys : "+enrollment.getKey());
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Binary file not shown.
BIN
target/classes/blockchain/configuration/Config.class
Normal file
BIN
target/classes/blockchain/configuration/Config.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
target/test-classes/blockchain/client/TestEnrollAdmin.class
Normal file
BIN
target/test-classes/blockchain/client/TestEnrollAdmin.class
Normal file
Binary file not shown.
Loading…
Reference in a new issue