📄 localhardtokensessionbean.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.hardtoken;import java.math.BigInteger;import java.security.cert.Certificate;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.Collections;import java.util.Date;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Random;import java.util.TreeMap;import javax.ejb.CreateException;import javax.ejb.EJBException;import javax.ejb.FinderException;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.CertificateDataBean;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.model.InternalResources;import org.ejbca.core.model.SecConst;import org.ejbca.core.model.authorization.AuthorizationDeniedException;import org.ejbca.core.model.hardtoken.HardTokenData;import org.ejbca.core.model.hardtoken.HardTokenDoesntExistsException;import org.ejbca.core.model.hardtoken.HardTokenExistsException;import org.ejbca.core.model.hardtoken.HardTokenIssuer;import org.ejbca.core.model.hardtoken.HardTokenIssuerData;import org.ejbca.core.model.hardtoken.HardTokenProfileExistsException;import org.ejbca.core.model.hardtoken.UnavailableTokenException;import org.ejbca.core.model.hardtoken.profiles.EIDProfile;import org.ejbca.core.model.hardtoken.profiles.HardTokenProfile;import org.ejbca.core.model.hardtoken.types.HardToken;import org.ejbca.core.model.log.Admin;import org.ejbca.core.model.log.LogConstants;import org.ejbca.core.model.log.LogEntry;import org.ejbca.core.model.ra.UserAdminConstants;import org.ejbca.core.model.ra.UserDataVO;import org.ejbca.util.CertTools;import org.ejbca.util.JDBCUtil;/** * Stores data used by web server clients. * Uses JNDI name for datasource as defined in env 'Datasource' in ejb-jar.xml. * * @ejb.bean * description="Session bean handling hard token data, both about hard tokens and hard token issuers." * display-name="HardTokenSessionSB" * name="HardTokenSession" * jndi-name="HardTokenSession" * local-jndi-name="HardTokenSessionLocal" * view-type="both" * type="Stateless" * transaction-type="Container" * * @ejb.transaction type="Supports" * * @weblogic.enable-call-by-reference True * * @ejb.env-entry * description="The JDBC datasource to be used" * name="DataSource" * type="java.lang.String" * value="${datasource.jndi-name-prefix}${datasource.jndi-name}" * * @ejb.home * extends="javax.ejb.EJBHome" * local-extends="javax.ejb.EJBLocalHome" * local-class="org.ejbca.core.ejb.hardtoken.IHardTokenSessionLocalHome" * remote-class="org.ejbca.core.ejb.hardtoken.IHardTokenSessionHome" * * @ejb.interface * extends="javax.ejb.EJBObject" * local-extends="javax.ejb.EJBLocalObject" * local-class="org.ejbca.core.ejb.hardtoken.IHardTokenSessionLocal" * remote-class="org.ejbca.core.ejb.hardtoken.IHardTokenSessionRemote" * * @ejb.ejb-external-ref * description="The hard token profile data entity bean" * view-type="local" * ref-name="ejb/HardTokenProfileDataLocal" * type="Entity" * home="org.ejbca.core.ejb.hardtoken.HardTokenProfileDataLocalHome" * business="org.ejbca.core.ejb.hardtoken.HardTokenProfileDataLocal" * link="HardTokenProfileData" * * @ejb.ejb-external-ref * description="The hard token issuers data entity bean" * view-type="local" * ref-name="ejb/HardTokenIssuerDataLocal" * type="Entity" * home="org.ejbca.core.ejb.hardtoken.HardTokenIssuerDataLocalHome" * business="org.ejbca.core.ejb.hardtoken.HardTokenIssuerDataLocal" * link="HardTokenIssuerData" * * @ejb.ejb-external-ref * description="The hard token data entity bean" * view-type="local" * ref-name="ejb/HardTokenDataLocal" * type="Entity" * home="org.ejbca.core.ejb.hardtoken.HardTokenDataLocalHome" * business="org.ejbca.core.ejb.hardtoken.HardTokenDataLocal" * link="HardTokenData" * * @ejb.ejb-external-ref * description="The hard token property data entity bean" * view-type="local" * ref-name="ejb/HardTokenPropertyDataLocal" * type="Entity" * home="org.ejbca.core.ejb.hardtoken.HardTokenPropertyLocalHome" * business="org.ejbca.core.ejb.hardtoken.HardTokenPropertyLocal" * link="HardTokenPropertyData" * * @ejb.ejb-external-ref * description="The hard token to certificate map data entity bean" * view-type="local" * ref-name="ejb/HardTokenCertificateMapLocal" * type="Entity" * home="org.ejbca.core.ejb.hardtoken.HardTokenCertificateMapLocalHome" * business="org.ejbca.core.ejb.hardtoken.HardTokenCertificateMapLocal" * link="HardTokenCertificateMap" * * @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 Certificate Store session bean" * 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 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" * * @jonas.bean * ejb-name="HardTokenSession" * */public class LocalHardTokenSessionBean extends BaseSessionBean { public static final int NO_ISSUER = 0; /** Internal localization of logs and errors */ private static final InternalResources intres = InternalResources.getInstance(); /** The local home interface of hard token issuer entity bean. */ private HardTokenIssuerDataLocalHome hardtokenissuerhome = null; /** The local home interface of hard token entity bean. */ private HardTokenDataLocalHome hardtokendatahome = null; /** The local home interface of hard token entity bean. */ private HardTokenProfileDataLocalHome hardtokenprofilehome = null; /** The local home interface of hard token certificate map entity bean. */ private HardTokenCertificateMapLocalHome hardtokencertificatemaphome = null; /** The local home interface of hard token property entity bean. */ private HardTokenPropertyLocalHome hardtokenpropertyhome = null; /** The local interface of authorization session bean */ private IAuthorizationSessionLocal authorizationsession = null; /** The local interface of certificate store session bean */ private ICertificateStoreSessionLocal certificatestoresession = null; /** The remote interface of log session bean */ private ILogSessionLocal logsession = null; /** * Default create for SessionBean without any creation Arguments. * @throws CreateException if bean instance can't be created */ public void ejbCreate() throws CreateException { try{ hardtokenissuerhome = (HardTokenIssuerDataLocalHome) getLocator().getLocalHome(HardTokenIssuerDataLocalHome.COMP_NAME); hardtokendatahome = (HardTokenDataLocalHome) getLocator().getLocalHome(HardTokenDataLocalHome.COMP_NAME); hardtokencertificatemaphome = (HardTokenCertificateMapLocalHome) getLocator().getLocalHome(HardTokenCertificateMapLocalHome.COMP_NAME); hardtokenprofilehome = (HardTokenProfileDataLocalHome) getLocator().getLocalHome(HardTokenProfileDataLocalHome.COMP_NAME); hardtokenpropertyhome = (HardTokenPropertyLocalHome) getLocator().getLocalHome(HardTokenPropertyLocalHome.COMP_NAME); }catch(Exception e){ throw new EJBException(e); } } /** 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(Exception e){ throw new EJBException(e); } } return logsession; } //getLogSession /** Gets connection to certificate store session bean * @return Connection */ private ICertificateStoreSessionLocal getCertificateStoreSession() { if(certificatestoresession == null){ try{ ICertificateStoreSessionLocalHome certificatestoresessionhome = (ICertificateStoreSessionLocalHome) getLocator().getLocalHome(ICertificateStoreSessionLocalHome.COMP_NAME); certificatestoresession = certificatestoresessionhome.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(Exception e){ throw new EJBException(e); } } return authorizationsession; } //getAuthorizationSession /** * Adds a hard token profile to the database. * * @throws HardTokenProfileExistsException if hard token already exists. * @throws EJBException if a communication or other error occurs. * @ejb.interface-method view-type="both" */ public void addHardTokenProfile(Admin admin, String name, HardTokenProfile profile) throws HardTokenProfileExistsException{ debug(">addHardTokenProfile(name: " + name + ")"); addHardTokenProfile(admin,findFreeHardTokenProfileId().intValue(),name,profile); debug("<addHardTokenProfile()"); } // addHardTokenProfile /** * Adds a hard token profile to the database. * Used for importing and exporting profiles from xml-files. * * @throws HardTokenProfileExistsException if hard token already exists. * @throws EJBException if a communication or other error occurs. * @ejb.interface-method view-type="both" * @ejb.transaction type="Required" */ public void addHardTokenProfile(Admin admin, int profileid, String name, HardTokenProfile profile) throws HardTokenProfileExistsException{ debug(">addHardTokenProfile(name: " + name + ", id: " + profileid +")"); boolean success=false; try{ hardtokenprofilehome.findByName(name);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -