📄 localapprovalsessionbean.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.approval;import java.math.BigInteger;import java.security.cert.X509Certificate;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Random;import javax.ejb.CreateException;import javax.ejb.EJBException;import javax.ejb.FinderException;import javax.ejb.RemoveException;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import org.apache.log4j.Logger;import org.ejbca.core.ejb.BaseSessionBean;import org.ejbca.core.ejb.JNDINames;import org.ejbca.core.ejb.authorization.IAuthorizationSessionLocal;import org.ejbca.core.ejb.authorization.IAuthorizationSessionLocalHome;import org.ejbca.core.ejb.ca.store.ICertificateStoreSessionLocal;import org.ejbca.core.ejb.ca.store.ICertificateStoreSessionLocalHome;import org.ejbca.core.ejb.log.ILogSessionLocal;import org.ejbca.core.ejb.log.ILogSessionLocalHome;import org.ejbca.core.ejb.ra.IUserAdminSessionLocal;import org.ejbca.core.ejb.ra.IUserAdminSessionLocalHome;import org.ejbca.core.ejb.ra.raadmin.IRaAdminSessionLocal;import org.ejbca.core.ejb.ra.raadmin.IRaAdminSessionLocalHome;import org.ejbca.core.model.InternalResources;import org.ejbca.core.model.approval.AdminAlreadyApprovedRequestException;import org.ejbca.core.model.approval.Approval;import org.ejbca.core.model.approval.ApprovalDataUtil;import org.ejbca.core.model.approval.ApprovalDataVO;import org.ejbca.core.model.approval.ApprovalException;import org.ejbca.core.model.approval.ApprovalRequest;import org.ejbca.core.model.approval.ApprovalRequestExecutionException;import org.ejbca.core.model.approval.ApprovalRequestExpiredException;import org.ejbca.core.model.authorization.AuthorizationDeniedException;import org.ejbca.core.model.authorization.AvailableAccessRules;import org.ejbca.core.model.log.Admin;import org.ejbca.core.model.log.LogEntry;import org.ejbca.core.model.ra.RAAuthorization;import org.ejbca.core.model.ra.UserDataVO;import org.ejbca.core.model.ra.raadmin.GlobalConfiguration;import org.ejbca.util.CertTools;import org.ejbca.util.JDBCUtil;import org.ejbca.util.NotificationParamGen;import org.ejbca.util.TemplateMimeMessage;import org.ejbca.util.query.IllegalQueryException;import org.ejbca.util.query.Query;/** * Keeps track of approval requests and their approval or rejects. * * Uses JNDI name for datasource as defined in env 'Datasource' in ejb-jar.xml. * * @ejb.bean description="Session bean handling interface with user data sources" * display-name="ApprovalSessionSB" * name="ApprovalSession" * jndi-name="ApprovalSession" * local-jndi-name="ApprovalSessionLocal" * view-type="both" * type="Stateless" * transaction-type="Container" * * @ejb.transaction type="Required" * * @weblogic.enable-call-by-reference True * * @ejb.env-entry name="DataSource" * type="java.lang.String" * value="${datasource.jndi-name-prefix}${datasource.jndi-name}" * * @ejb.env-entry * description="Defines the JNDI name of the mail service used" * name="MailJNDIName" * type="java.lang.String" * value="${mail.jndi-name}" * * @ejb.ejb-external-ref description="The Approval entity bean" * view-type="local" * ref-name="ejb/ApprovalDataLocal" * type="Entity" * home="org.ejbca.core.ejb.approval.ApprovalDataLocalHome" * business="org.ejbca.core.ejb.approval.ApprovalDataLocal" * link="ApprovalData" * * @ejb.ejb-external-ref description="The Certificate store used to store and fetch certificates" * view-type="local" * ref-name="ejb/CertificateStoreSessionLocal" * type="Session" * home="org.ejbca.core.ejb.ca.store.ICertificateStoreSessionLocalHome" * business="org.ejbca.core.ejb.ca.store.ICertificateStoreSessionLocal" * link="CertificateStoreSession" * * @ejb.ejb-external-ref description="The Authorization Session Bean" * view-type="local" * ref-name="ejb/AuthorizationSessionLocal" * type="Session" * home="org.ejbca.core.ejb.authorization.IAuthorizationSessionLocalHome" * business="org.ejbca.core.ejb.authorization.IAuthorizationSessionLocal" * link="AuthorizationSession" * * @ejb.ejb-external-ref * description="The Ra Admin session bean" * view-type="local" * ref-name="ejb/RaAdminSessionLocal" * type="Session" * home="org.ejbca.core.ejb.ra.raadmin.IRaAdminSessionLocalHome" * business="org.ejbca.core.ejb.ra.raadmin.IRaAdminSessionLocal" * link="RaAdminSession" * * @ejb.ejb-external-ref * description="The User Admin session bean" * view-type="local" * ref-name="ejb/UserAdminSessionLocal" * type="Session" * home="org.ejbca.core.ejb.ra.IUserAdminSessionLocalHome" * business="org.ejbca.core.ejb.ra.IUserAdminSessionLocal" * link="UserAdminSession" * * @ejb.ejb-external-ref * description="The Certificate Store session bean" * view-type="local" * ref-name="ejb/HardTokenSessionLocal" * type="Session" * home="org.ejbca.core.ejb.hardtoken.IHardTokenSessionLocalHome" * business="org.ejbca.core.ejb.hardtoken.IHardTokenSessionLocal" * link="HardTokenSession" * * @ejb.ejb-external-ref * description="The Key Recovery session bean" * view-type="local" * ref-name="ejb/KeyRecoverySessionLocal" * type="Session" * home="org.ejbca.core.ejb.keyrecovery.IKeyRecoverySessionLocalHome" * business="org.ejbca.core.ejb.keyrecovery.IKeyRecoverySessionLocal" * link="KeyRecoverySession" * * @ejb.ejb-external-ref description="The CAAdmin Session Bean" * view-type="local" * ref-name="ejb/CAAdminSessionLocal" * type="Session" * home="org.ejbca.core.ejb.ca.caadmin.ICAAdminSessionLocalHome" * business="org.ejbca.core.ejb.ca.caadmin.ICAAdminSessionLocal" * link="CAAdminSession" * * @ejb.ejb-external-ref description="The log session bean" * view-type="local" * ref-name="ejb/LogSessionLocal" * type="Session" * home="org.ejbca.core.ejb.log.ILogSessionLocalHome" * business="org.ejbca.core.ejb.log.ILogSessionLocal" * link="LogSession" * * @ejb.home extends="javax.ejb.EJBHome" * local-extends="javax.ejb.EJBLocalHome" * local-class="org.ejbca.core.ejb.approval.IApprovalSessionLocalHome" * remote-class="org.ejbca.core.ejb.approval.IApprovalSessionHome" * * @ejb.interface extends="javax.ejb.EJBObject" * local-extends="javax.ejb.EJBLocalObject" * local-class="org.ejbca.core.ejb.approval.IApprovalSessionLocal" * remote-class="org.ejbca.core.ejb.approval.IApprovalSessionRemote" * * @jonas.bean ejb-name="ApprovalSession" */public class LocalApprovalSessionBean extends BaseSessionBean { private static final Logger log = Logger.getLogger(LocalApprovalSessionBean.class); /** Internal localization of logs and errors */ private static final InternalResources intres = InternalResources.getInstance(); /** * The local home interface of approval entity bean. */ private ApprovalDataLocalHome approvalHome = null; /** * The local interface of RaAdmin Session Bean. */ private IRaAdminSessionLocal raadminsession; /** * The local interface of User Admin Session Bean. */ private IUserAdminSessionLocal useradminsession; /** * The local interface of authorization session bean */ private IAuthorizationSessionLocal authorizationsession = null; /** * The remote interface of log session bean */ private ILogSessionLocal logsession = null; /** The local interface of the certificate store session bean */ private ICertificateStoreSessionLocal certificatestoresession; /** * Columns in the database used in select */ private static final String APPROVALDATA_COL = "id, approvalid, approvaltype, endentityprofileid, caid, reqadmincertissuerdn, reqadmincertsn, status, approvaldata, requestdata, requestdate, expiredate, remainingapprovals"; /** * Default create for SessionBean without any creation Arguments. * * @throws CreateException if bean instance can't be created */ public void ejbCreate() throws CreateException { approvalHome = (ApprovalDataLocalHome) getLocator().getLocalHome(ApprovalDataLocalHome.COMP_NAME); } /** * Gets connection to log session bean * * @return Connection */ private ILogSessionLocal getLogSession() { if (logsession == null) { try { ILogSessionLocalHome logsessionhome = (ILogSessionLocalHome) getLocator().getLocalHome(ILogSessionLocalHome.COMP_NAME); logsession = logsessionhome.create(); } catch (CreateException e) { throw new EJBException(e); } } return logsession; } //getLogSession /** * Gets connection to ra admin session bean * * @return Connection */ private IRaAdminSessionLocal getRAAdminSession() { if (raadminsession == null) { try { IRaAdminSessionLocalHome raadminsessionhome = (IRaAdminSessionLocalHome) getLocator().getLocalHome(IRaAdminSessionLocalHome.COMP_NAME); raadminsession = raadminsessionhome.create(); } catch (CreateException e) { throw new EJBException(e); } } return raadminsession; } //getRAAdminSession /** * Gets connection to user admin session bean * * @return Connection */ private IUserAdminSessionLocal getUserAdminSession() { if (useradminsession == null) { try { IUserAdminSessionLocalHome useradminsessionhome = (IUserAdminSessionLocalHome) getLocator().getLocalHome(IUserAdminSessionLocalHome.COMP_NAME); useradminsession = useradminsessionhome.create(); } catch (CreateException e) { throw new EJBException(e); } } return useradminsession; } //getUserAdminSession /** Gets connection to certificate store session bean * @return Connection */ private ICertificateStoreSessionLocal getCertificateStoreSession() { if(certificatestoresession == null){ try{ ICertificateStoreSessionLocalHome home = (ICertificateStoreSessionLocalHome) getLocator().getLocalHome(ICertificateStoreSessionLocalHome.COMP_NAME); certificatestoresession = home.create(); }catch(Exception e){ throw new EJBException(e); } } return certificatestoresession; } //getCertificateStoreSession /** * Gets connection to authorization session bean * * @return IAuthorizationSessionLocal */ private IAuthorizationSessionLocal getAuthorizationSession() { if (authorizationsession == null) { try { IAuthorizationSessionLocalHome authorizationsessionhome = (IAuthorizationSessionLocalHome) getLocator().getLocalHome(IAuthorizationSessionLocalHome.COMP_NAME); authorizationsession = authorizationsessionhome.create(); } catch (CreateException e) { throw new EJBException(e); } } return authorizationsession; } //getAuthorizationSession /**
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -