| 1 13 14 package org.ejbca.ui.web.admin.loginterface; 15 16 import java.math.BigInteger ; 17 import java.rmi.RemoteException ; 18 import java.security.cert.Certificate ; 19 import java.security.cert.X509Certificate ; 20 import java.util.HashMap ; 21 22 import org.ejbca.core.ejb.ca.store.ICertificateStoreSessionLocal; 23 import org.ejbca.core.ejb.ca.store.ICertificateStoreSessionRemote; 24 import org.ejbca.core.model.log.Admin; 25 import org.ejbca.util.CertTools; 26 27 32 public class SubjectDNProxy implements java.io.Serializable { 33 34 35 public SubjectDNProxy(Admin admin, ICertificateStoreSessionRemote certificatesession){ 36 this.local = false; 38 this.certificatesessionremote = certificatesession; 39 this.subjectdnstore = new HashMap (); 40 this.admin = admin; 41 42 } 43 44 45 public SubjectDNProxy(Admin admin, ICertificateStoreSessionLocal certificatesession){ 46 this.local = true; 48 this.certificatesessionlocal = certificatesession; 49 this.subjectdnstore = new HashMap (); 50 this.admin = admin; 51 } 52 53 59 public String getSubjectDN(String admindata) throws RemoteException { 60 String returnval = null; 61 Certificate result = null; 62 63 returnval = (String ) subjectdnstore.get(admindata); 65 66 if(returnval==null && admindata.indexOf(',') != -1){ 67 String certificatesnr = admindata.substring(0,admindata.indexOf(',')); 69 String issuerdn = admindata.substring(admindata.indexOf(',')+1); 70 71 if(local) 72 result = certificatesessionlocal.findCertificateByIssuerAndSerno(admin, issuerdn, new BigInteger (certificatesnr,16)); 73 else 74 result = certificatesessionremote.findCertificateByIssuerAndSerno(admin, issuerdn, new BigInteger (certificatesnr, 16)); 75 if(result != null){ 76 returnval = CertTools.getSubjectDN((X509Certificate ) result); 77 subjectdnstore.put(admindata,returnval); 78 } 79 } 80 81 return returnval; 82 } 83 84 private boolean local; 86 private HashMap subjectdnstore; 87 private ICertificateStoreSessionLocal certificatesessionlocal; 88 private ICertificateStoreSessionRemote certificatesessionremote; 89 private Admin admin; 90 91 } 92 | Popular Tags |