/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.intel.mtwilson.as.rest.v2.resource;
import com.intel.dcsg.cpg.crypto.RsaUtil;
import com.intel.dcsg.cpg.crypto.Sha1Digest;
import com.intel.dcsg.cpg.crypto.Sha256Digest;
import com.intel.dcsg.cpg.io.UUID;
import com.intel.dcsg.cpg.x509.X509Builder;
import com.intel.mtwilson.user.management.rest.v2.model.RegisterUserWithCertificate;
import com.intel.mtwilson.user.management.rest.v2.model.User;
import com.intel.mtwilson.user.management.rest.v2.model.UserLoginCertificate;
import com.intel.mtwilson.user.management.rest.v2.rpc.RegisterUserWithCertificateRunnable;
import java.security.KeyPair;
import java.security.cert.X509Certificate;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import com.intel.dcsg.cpg.util.shiro.Login;
import org.junit.Test;
import org.junit.BeforeClass;
/**
*
* @author ssbangal
*/
public class RegisterUserWithCertTest {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(RegisterUserWithCertTest.class);
@BeforeClass
public static void login() throws Exception {
Login.superuser();
}
@Test
public void testRegisterUserWithCert() throws Exception {
KeyPair keyPair;
X509Certificate certificate;
UUID userId = new UUID();
UUID userCertId = new UUID();
String userName = "superadmin2";
User user = new User();
user.setId(userId);
user.setUsername(userName);
user.setLocale(Locale.US);
user.setComment("Need to manage user accounts.");
keyPair = RsaUtil.generateRsaKeyPair(RsaUtil.MINIMUM_RSA_KEY_SIZE);
certificate = X509Builder.factory().selfSigned(String.format("CN=%s", userName), keyPair).expires(365, TimeUnit.DAYS).build();
UserLoginCertificate userLoginCertificate = new UserLoginCertificate();
userLoginCertificate.setId(userCertId);
userLoginCertificate.setUserId(userId);
userLoginCertificate.setCertificate(certificate.getEncoded());
userLoginCertificate.setComment("Self signed cert.");
userLoginCertificate.setExpires(certificate.getNotAfter());
userLoginCertificate.setSha1Hash(Sha1Digest.digestOf(certificate.getEncoded()).toByteArray());
userLoginCertificate.setSha256Hash(Sha256Digest.digestOf(certificate.getEncoded()).toByteArray());
RegisterUserWithCertificateRunnable rpcRunnable = new RegisterUserWithCertificateRunnable();
rpcRunnable.setUser(user);
rpcRunnable.setUserLoginCertificate(userLoginCertificate);
rpcRunnable.run();
}
}