📄 cadatahandler.java
字号:
/************************************************************************* * * * EJBCA: The OpenSource Certificate Authority * * * * This software is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or any later version. * * * * See terms of license at gnu.org. * * * *************************************************************************/ package se.anatom.ejbca.webdist.cainterface;import java.io.InputStream;import java.io.Serializable;import java.security.cert.CertPathValidatorException;import java.security.cert.Certificate;import java.security.cert.X509Certificate;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import org.bouncycastle.jce.PKCS10CertificationRequest;import se.anatom.ejbca.SecConst;import se.anatom.ejbca.authorization.AuthorizationDeniedException;import se.anatom.ejbca.authorization.IAuthorizationSessionLocal;import se.anatom.ejbca.ca.caadmin.CAInfo;import se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal;import se.anatom.ejbca.ca.caadmin.extendedcaservices.ExtendedCAServiceInfo;import se.anatom.ejbca.ca.caadmin.extendedcaservices.OCSPCAServiceInfo;import se.anatom.ejbca.ca.crl.RevokedCertInfo;import se.anatom.ejbca.ca.exception.CADoesntExistsException;import se.anatom.ejbca.ca.exception.CAExistsException;import se.anatom.ejbca.ca.exception.CATokenAuthenticationFailedException;import se.anatom.ejbca.ca.exception.CATokenOfflineException;import se.anatom.ejbca.ca.sign.ISignSessionLocal;import se.anatom.ejbca.ca.store.ICertificateStoreSessionLocal;import se.anatom.ejbca.ca.store.certificateprofiles.CertificateProfile;import se.anatom.ejbca.log.Admin;import se.anatom.ejbca.protocol.IRequestMessage;import se.anatom.ejbca.protocol.IResponseMessage;import se.anatom.ejbca.protocol.PKCS10RequestMessage;import se.anatom.ejbca.protocol.X509ResponseMessage;import se.anatom.ejbca.ra.IUserAdminSessionLocal;import se.anatom.ejbca.ra.raadmin.IRaAdminSessionLocal;import se.anatom.ejbca.util.CertTools;import se.anatom.ejbca.webdist.webconfiguration.EjbcaWebBean;import se.anatom.ejbca.webdist.webconfiguration.InformationMemory;/** * A class help administrating CAs. * * @author TomSelleck */public class CADataHandler implements Serializable { /** Creates a new instance of CertificateProfileDataHandler */ public CADataHandler(Admin administrator, ICAAdminSessionLocal caadminsession, IUserAdminSessionLocal adminsession, IRaAdminSessionLocal raadminsession, ICertificateStoreSessionLocal certificatesession, IAuthorizationSessionLocal authorizationsession, ISignSessionLocal signsession, EjbcaWebBean ejbcawebbean) { this.caadminsession = caadminsession; this.authorizationsession = authorizationsession; this.adminsession = adminsession; this.certificatesession = certificatesession; this.raadminsession = raadminsession; this.administrator = administrator; this.signsession = signsession; this.info = ejbcawebbean.getInformationMemory(); this.ejbcawebbean = ejbcawebbean; } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public void createCA(CAInfo cainfo) throws CAExistsException, CATokenOfflineException, CATokenAuthenticationFailedException, AuthorizationDeniedException{ caadminsession.createCA(administrator, cainfo); info.cAsEdited(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public void editCA(CAInfo cainfo) throws AuthorizationDeniedException{ caadminsession.editCA(administrator, cainfo); info.cAsEdited(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public boolean removeCA(int caid) throws AuthorizationDeniedException{ boolean caidexits = this.adminsession.checkForCAId(administrator, caid) || this.certificatesession.existsCAInCertificateProfiles(administrator, caid) || this.raadminsession.existsCAInEndEntityProfiles(administrator, caid) || this.authorizationsession.existsCAInRules(administrator, caid); if(!caidexits){ caadminsession.removeCA(administrator, caid); info.cAsEdited(); } return !caidexits; } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public void renameCA(String oldname, String newname) throws CAExistsException, AuthorizationDeniedException{ caadminsession.renameCA(administrator, oldname, newname); info.cAsEdited(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public CAInfoView getCAInfo(String name) throws Exception{ CAInfoView cainfoview = null; CAInfo cainfo = caadminsession.getCAInfo(administrator, name); if(cainfo != null) cainfoview = new CAInfoView(cainfo, ejbcawebbean, info.getPublisherIdToNameMap()); return cainfoview; } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public CAInfoView getCAInfo(int caid) throws Exception{ // temporate CAInfoView cainfoview = null; CAInfo cainfo = caadminsession.getCAInfo(administrator, caid); if(cainfo != null) cainfoview = new CAInfoView(cainfo, ejbcawebbean, info.getPublisherIdToNameMap()); return cainfoview; } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public HashMap getCAIdToNameMap(){ return info.getCAIdToNameMap(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public PKCS10CertificationRequest makeRequest(int caid, Collection cachain, boolean setstatustowaiting) throws CADoesntExistsException, AuthorizationDeniedException, CertPathValidatorException, CATokenOfflineException{ PKCS10RequestMessage result = (PKCS10RequestMessage) caadminsession.makeRequest(administrator, caid,cachain,setstatustowaiting); return result.getCertificationRequest(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public void receiveResponse(int caid, InputStream is) throws Exception{ Collection certs = CertTools.getCertsFromPEM(is); Iterator iter = certs.iterator(); Certificate cert = (Certificate) iter.next(); X509ResponseMessage resmes = new X509ResponseMessage(); resmes.setCertificate(cert); caadminsession.receiveResponse(administrator, caid, resmes); info.cAsEdited(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public Certificate processRequest(CAInfo cainfo, IRequestMessage requestmessage) throws Exception { Certificate returnval = null; IResponseMessage result = caadminsession.processRequest(administrator, cainfo, requestmessage); if(result instanceof X509ResponseMessage){ returnval = ((X509ResponseMessage) result).getCertificate(); } info.cAsEdited(); return returnval; } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public void renewCA(int caid, IResponseMessage responsemessage) throws CADoesntExistsException, AuthorizationDeniedException, CertPathValidatorException, CATokenOfflineException{ caadminsession.renewCA(administrator, caid, responsemessage); info.cAsEdited(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public void revokeCA(int caid, int reason) throws CADoesntExistsException, AuthorizationDeniedException, CATokenOfflineException{ caadminsession.revokeCA(administrator, caid, reason); info.cAsEdited(); } /** * @see se.anatom.ejbca.ca.caadmin.ICAAdminSessionLocal */ public void publishCA(int caid){ CAInfo cainfo = caadminsession.getCAInfo(administrator, caid); CertificateProfile certprofile = certificatesession.getCertificateProfile(administrator, cainfo.getCertificateProfileId()); int certtype = SecConst.CERTTYPE_SUBCA; if(cainfo.getSignedBy() == CAInfo.SELFSIGNED) certtype = SecConst.CERTTYPE_ROOTCA; signsession.publishCACertificate(administrator, cainfo.getCertificateChain(), certprofile.getPublisherList() , certtype); } public void revokeOCSPCertificate(int caid){ CAInfo cainfo = caadminsession.getCAInfo(administrator, caid); Iterator iter = cainfo.getExtendedCAServiceInfos().iterator(); while(iter.hasNext()){ ExtendedCAServiceInfo next = (ExtendedCAServiceInfo) iter.next(); if(next instanceof OCSPCAServiceInfo){ X509Certificate ocspcert = (X509Certificate)((OCSPCAServiceInfo) next).getOCSPSignerCertificatePath().get(0); certificatesession.revokeCertificate(administrator,ocspcert, cainfo.getCRLPublishers(), RevokedCertInfo.REVOKATION_REASON_UNSPECIFIED); } } } private ICAAdminSessionLocal caadminsession; private Admin administrator; private IAuthorizationSessionLocal authorizationsession; private InformationMemory info; private IUserAdminSessionLocal adminsession; private IRaAdminSessionLocal raadminsession; private ICertificateStoreSessionLocal certificatesession; private EjbcaWebBean ejbcawebbean; private ISignSessionLocal signsession;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -