⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 certreqhistorydatabean.java

📁 一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考
💻 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 org.ejbca.core.ejb.ca.store;import java.io.UnsupportedEncodingException;import java.security.cert.Certificate;import java.security.cert.X509Certificate;import java.util.Date;import javax.ejb.CreateException;import javax.ejb.EJBException;import org.apache.log4j.Logger;import org.ejbca.core.ejb.BaseEntityBean;import org.ejbca.core.model.ca.store.CertReqHistory;import org.ejbca.core.model.ra.UserDataVO;import org.ejbca.util.CertTools;/** * Entity Bean storing historical information about the data user to  * create a certificate. Information stored: * <pre> * Primary Key (fingerprint, String) * Issuer DN (issuerDN) * Serial number (serialNumber) * Username (username); * Timestamp (timestamp) * UserDataVO (userAdminData) * </pre> * * @version $Id: CertReqHistoryDataBean.java,v 1.4 2006/11/10 09:28:51 anatom Exp $ * * @ejb.bean description="This enterprise bean entity containing historical record over data user to generate a users certificate" * display-name="CertReqHistoryDataEB" * name="CertReqHistoryData" * jndi-name="CertReqHistoryData" * view-type="local" * type="CMP" * reentrant="False" * cmp-version="2.x" * transaction-type="Container" * schema="CertReqHistoryDataBean" * * @ejb.transaction type="Required" * * @ejb.pk class="org.ejbca.core.ejb.ca.store.CertReqHistoryDataPK" * extends="java.lang.Object" * implements="java.io.Serializable" * * @ejb.persistence table-name = "CertReqHistoryData" *  * @ejb.home * generate="local" * local-extends="javax.ejb.EJBLocalHome" * local-class="org.ejbca.core.ejb.ca.store.CertReqHistoryDataLocalHome" * * @ejb.interface * generate="local" * local-extends="javax.ejb.EJBLocalObject" * local-class="org.ejbca.core.ejb.ca.store.CertReqHistoryDataLocal" * * @ejb.finder description="findByIssuerDNSerialNumber" * signature="Collection findByIssuerDNSerialNumber(java.lang.String issuerDN, java.lang.String serialNumber)" * query="SELECT OBJECT(a) from CertReqHistoryDataBean a WHERE a.issuerDN=?1 AND a.serialNumber=?2" * * @ejb.finder description="findByUsername" * signature="Collection findByUsername(java.lang.String username)" * query="SELECT OBJECT(a) from CertReqHistoryDataBean a WHERE  a.username=?1" * * @jonas.jdbc-mapping *   jndi-name="${datasource.jndi-name}" */public abstract class CertReqHistoryDataBean extends BaseEntityBean {    private static final Logger log = Logger.getLogger(CertReqHistoryDataBean.class);    /**     * DN of issuer of certificate     * Should be used outside of entity bean, use getCertReqHistory instead     *     * @return issuer dn     * @ejb.persistence column-name="issuerDN"     *      */    public abstract String getIssuerDN();    /**     * Use setIssuer instead     *     * @param issuerDN issuer dn     */    public abstract void setIssuerDN(String issuerDN);    /**     * Fingerprint of certificate     * Should be used outside of entity bean, use getCertReqHistory instead     *     * @return fingerprint     * @ejb.persistence column-name="fingerprint"     * @ejb.interface-method     * @ejb.pk-field      */    public abstract String getFingerprint();    /**     * Fingerprint of certificate     * Shouldn't be set after creation.     *      * @param fingerprint fingerprint     */    public abstract void setFingerprint(String fingerprint);    /**     * Serialnumber formated as BigInteger.toString()     * Should be used outside of entity bean, use getCertReqHistory instead     *     * @return serial number     * @ejb.persistence column-name="serialNumber"     */    public abstract String getSerialNumber();    /**     * Serialnumber formated as BigInteger.toString()     * Shouldn't be set after creation.     *      * @param serialNumber serial number     */    public abstract void setSerialNumber(String serialNumber);    /**     * Date formated as seconds since 1970 (== Date.getTime())     * Should be used outside of entity bean, use getCertReqHistory instead     *     * @return timestamp      * @ejb.persistence column-name="timestamp"     */    public abstract long getTimestamp();    /**     * Date formated as seconds since 1970 (== Date.getTime())     * Shouldn't be set after creation.     *     * @param timestamp when certificate request info was stored     */    public abstract void setTimestamp(long timestamp);    /**     * UserDataVO in xmlencoded String format     * Should be used outside of entity bean, use getCertReqHistory instead     *     * @return  xmlencoded encoded UserDataVO     * @ejb.persistence jdbc-type="LONGVARCHAR" column-name="userDataVO"     */    public abstract String getUserDataVO();    /**     * UserDataVO in  xmlencoded String format     * Shouldn't be set after creation.     *     * @param userDataVO xmlencoded encoded UserDataVO     */    public abstract void setUserDataVO(String userDataVO);    /**     * username in database     * Should be used outside of entity bean, use getCertReqHistory instead     *     * @return username     * @ejb.persistence column-name="username"     */    public abstract String getUsername();    /**     * username must be called 'striped' using StringTools.strip()     * Shouldn't be set after creation.     *     * @param username username     *     * @see org.ejbca.util.StringTools     */    public abstract void setUsername(String username);    //    // Public business methods used to help us manage certificates    //    /**     * Returns the value object containing the information of the entity bean.     * This is the method that should be used to retreive cert req history      * correctly.     *     * @return certificate request history object     * @ejb.interface-method     */    public CertReqHistory getCertReqHistory() {    		    java.beans.XMLDecoder decoder;		try {		  decoder =			new java.beans.XMLDecoder(					new java.io.ByteArrayInputStream(getUserDataVO().getBytes("UTF8")));		} catch (UnsupportedEncodingException e) {		  throw new EJBException(e);		}		UserDataVO useradmindata  = (UserDataVO) decoder.readObject();			decoder.close();        return new CertReqHistory(this.getFingerprint(),this.getSerialNumber(),        		this.getIssuerDN(),this.getUsername(),new Date(this.getTimestamp()),				useradmindata);    }    //    // Fields required by Container    //    /**     * Entity Bean holding info about a request data at the time the certificate was issued.     *      * @param incert the certificate issued     * @param UserDataVO, the data used to issue the certificate.      *     * @return primary key     * @ejb.create-method     */    public CertReqHistoryDataPK ejbCreate(Certificate incert, UserDataVO useradmindata)        throws CreateException {        // Exctract fields to store with the certificate.        X509Certificate tmpcert;        tmpcert = (X509Certificate) incert;        String fingerprint = CertTools.getFingerprintAsString(tmpcert);        setFingerprint(fingerprint);        setIssuerDN(CertTools.getIssuerDN(tmpcert));        log.debug("Creating certreqhistory data, serial=" + tmpcert.getSerialNumber().toString() + ", issuer=" + getIssuerDN());        setSerialNumber(tmpcert.getSerialNumber().toString());        setTimestamp(new Date().getTime());                	    	setUsername(useradmindata.getUsername());    	try {            // Save the user admin data in xml encoding.    		java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();    		java.beans.XMLEncoder encoder = new java.beans.XMLEncoder(baos);    		encoder.writeObject(useradmindata);    		encoder.close();            if (log.isDebugEnabled()) {               log.debug("useradmindata: \n" + baos.toString("UTF8"));            }   			setUserDataVO(baos.toString("UTF8"));                    } catch (UnsupportedEncodingException e) {            throw new EJBException(e);    	                                                      }         return null;    }    /**     * required method, does nothing     *     * @param incert certificate     * @param UserDataVO, the data used to issue the certificate.      */    public void ejbPostCreate(Certificate incert, UserDataVO useradmindata) {        // Do nothing. Required.    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -