package at.gv.egovernment.moa.id.configuration.data.oa; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import iaik.x509.X509Certificate; import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA; import at.gv.egovernment.moa.id.commons.db.dao.config.OAPVP2; import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; import at.gv.egovernment.moa.util.MiscUtil; public class OAPVP2Config { private final Logger log = Logger.getLogger(OAPVP2Config.class); private String metaDataURL = null; private String certificateDN = null; private File fileUpload = null; private String fileUploadContentType; private String fileUploadFileName; public OAPVP2Config() { } public List parse(OnlineApplication dbOAConfig) { List errors = new ArrayList(); AuthComponentOA authdata = dbOAConfig.getAuthComponentOA(); if (authdata != null) { OAPVP2 pvp2 = authdata.getOAPVP2(); if (pvp2 != null) { metaDataURL = pvp2.getMetadataURL(); try { byte[] cert = pvp2.getCertificate(); if (MiscUtil.isNotEmpty(cert)) { X509Certificate x509 = new X509Certificate(cert); certificateDN = x509.getSubjectDN().getName(); } } catch (CertificateException e) { log.warn("PVP2 certificate can not be loaded from Online-Applikation with ID " + dbOAConfig.getPublicURLPrefix()); errors.add(LanguageHelper.getErrorString("error.oa.pvp2.certificate")); } } } return errors; } public byte[] getCertificate() throws CertificateException, IOException { FileInputStream filestream = new FileInputStream(fileUpload); X509Certificate x509 = new X509Certificate(filestream); return x509.getEncoded(); } public String getMetaDataURL() { return metaDataURL; } public void setMetaDataURL(String metaDataURL) { this.metaDataURL = metaDataURL; } /** * @return the certificateDN */ public String getCertificateDN() { return certificateDN; } /** * @return the fileUpLoad */ public File getFileUpload() { return fileUpload; } /** * @param fileUpLoad the fileUpLoad to set */ public void setFileUpload(File fileUpload) { this.fileUpload = fileUpload; } /** * @return the fileUploadContentType */ public String getFileUploadContentType() { return fileUploadContentType; } /** * @param fileUploadContentType the fileUploadContentType to set */ public void setFileUploadContentType(String fileUploadContentType) { this.fileUploadContentType = fileUploadContentType; } /** * @return the fileUploadFileName */ public String getFileUploadFileName() { return fileUploadFileName; } /** * @param fileUploadFileName the fileUploadFileName to set */ public void setFileUploadFileName(String fileUploadFileName) { this.fileUploadFileName = fileUploadFileName; } }