EnrollAdmin Test

succeed to enroll existing default admin from blockchain.
This commit is contained in:
GME 2018-10-21 19:09:29 +02:00
parent 79dd885e9e
commit 2e5d8d316a
9 changed files with 99 additions and 8 deletions

BIN
msp/Org1/admin.context Normal file

Binary file not shown.

View file

@ -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;
}

View 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";
}

View file

@ -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);

View 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.