try{
String bcIssuerDN = CertTools.stringToBCDNString(issuerDN);
caAdminSession.verifyExistenceOfCA(bcIssuerDN.hashCode());
CertReqHistory certreqhist = certificateStoreSession.getCertReqHistory(admin,new BigInteger(serialNumberInHex,16), bcIssuerDN);
if(certreqhist == null){
throw new PublisherException("Error: the certificate with serialnumber : " + serialNumberInHex +" and issuerdn " + issuerDN + " couldn't be found in database.");
}
ejbhelper.isAuthorizedToRepublish(admin, certreqhist.getUsername(),bcIssuerDN.hashCode());
if(certreqhist != null){
CertificateProfile certprofile = certificateProfileSession.getCertificateProfile(admin,certreqhist.getUserDataVO().getCertificateProfileId());
java.security.cert.Certificate cert = certificateStoreSession.findCertificateByFingerprint(admin, certreqhist.getFingerprint());
if(certprofile != null){
CertificateInfo certinfo = certificateStoreSession.getCertificateInfo(admin, certreqhist.getFingerprint());
if(certprofile.getPublisherList().size() > 0){
if(publisherSession.storeCertificate(admin, certprofile.getPublisherList(), cert, certreqhist.getUserDataVO().getUsername(), certreqhist.getUserDataVO().getPassword(), certreqhist.getUserDataVO().getDN(),
certinfo.getCAFingerprint(), certinfo.getStatus() , certinfo.getType(), certinfo.getRevocationDate().getTime(), certinfo.getRevocationReason(), certinfo.getTag(), certinfo.getCertificateProfileId(), certinfo.getUpdateTime().getTime(), certreqhist.getUserDataVO().getExtendedinformation())){
}else{
throw new PublisherException("Error: publication failed to at least one of the defined publishers.");
}
}else{
throw new PublisherException("Error no publisher defined for the given certificate.");
}
}else{
throw new PublisherException("Error : Certificate profile couldn't be found for the given certificate.");
}
}
} catch (RuntimeException e) { // EJBException, ClassCastException, ...
throw EjbcaWSHelper.getInternalException(e, logger);
} finally {