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

📄 localejbcahardtokenbatchjobsessionbean.java

📁 一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/************************************************************************* *                                                                       * *  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.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.Collection;import javax.ejb.CreateException;import javax.ejb.EJBException;import org.ejbca.core.ejb.BaseSessionBean;import org.ejbca.core.ejb.JNDINames;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.hardtoken.UnavailableTokenException;import org.ejbca.core.model.log.Admin;import org.ejbca.core.model.log.LogEntry;import org.ejbca.core.model.ra.UserDataConstants;import org.ejbca.core.model.ra.UserDataVO;import org.ejbca.util.JDBCUtil;/** * Remote interface for bean used by hardtoken batchprograms to retrieve users to generate from EJBCA RA. * * @ejb.bean *   description="Session bean handling userdata queue for hard token issuers" *   display-name="HardTokenBatchJobSessionSB" *   name="HardTokenBatchJobSession" *   jndi-name="HardTokenBatchJobSession" *   local-jndi-name="HardTokenBatchJobSessionLocal" *   view-type="both" *   type="Stateless" *   transaction-type="Container" * * @ejb.transaction type="Required" * * @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.IHardTokenBatchJobSessionLocalHome" *   remote-class="org.ejbca.core.ejb.hardtoken.IHardTokenBatchJobSessionHome" * * @ejb.interface *   extends="javax.ejb.EJBObject" *   local-extends="javax.ejb.EJBLocalObject" *   local-class="org.ejbca.core.ejb.hardtoken.IHardTokenBatchJobSessionLocal" *   remote-class="org.ejbca.core.ejb.hardtoken.IHardTokenBatchJobSessionRemote" * * @ejb.ejb-external-ref *   description="The User entity bean" *   view-type="local" *   ref-name="ejb/UserDataLocal" *   type="Entity" *   home="org.ejbca.core.ejb.ra.UserDataLocalHome" *   business="org.ejbca.core.ejb.ra.UserDataLocal" *   link="UserData" * * @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 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 LocalEjbcaHardTokenBatchJobSessionBean extends BaseSessionBean  {    public static final int MAX_RETURNED_QUEUE_SIZE = 300;    /** Internal localization of logs and errors */    private static final InternalResources intres = InternalResources.getInstance();        /** Columns in the database used in select */    private static final String USERDATA_COL = "username, subjectDN, subjectAltName, subjectEmail, status, type, clearpassword, timeCreated, timeModified, endEntityprofileId, certificateProfileId, tokenType, hardTokenIssuerId, cAId";    /** The local interface of  hard token session bean */    private IHardTokenSessionLocal hardtokensession = 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 {    }    /** Gets connection to hard token session bean     * @return IHardTokenSessionLocal     */    private IHardTokenSessionLocal getHardTokenSession() {        if(hardtokensession == null){          try{            IHardTokenSessionLocalHome hardtokensessionhome = (IHardTokenSessionLocalHome) getLocator().getLocalHome(IHardTokenSessionLocalHome.COMP_NAME);            hardtokensession = hardtokensessionhome.create();          }catch(Exception e){             throw new EJBException(e);          }        }        return hardtokensession;    } //getHardTokenSession    /** 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    /**     * Returns the next user scheduled for batch generation for the given issuer.     *     * @param admin the administrator performing the actions     *     * @return The next user to generate or NULL if there are no users i queue.     * @throws EJBException if a communication or other error occurs.     * @ejb.interface-method view-type="both"     */    public UserDataVO getNextHardTokenToGenerate(Admin admin, String alias) throws UnavailableTokenException{      debug(">getNextHardTokenToGenerate()");      debug("alias " + alias);      UserDataVO returnval=null;      int issuerid = getHardTokenSession().getHardTokenIssuerId(admin, alias);      debug("issuerid " + issuerid);      if(issuerid != LocalHardTokenSessionBean.NO_ISSUER){        Connection con = null;        ResultSet rs = null;        PreparedStatement ps = null;        try{           // Construct SQL query.        	debug("HERE");            con = JDBCUtil.getDBConnection(JNDINames.DATASOURCE);            ps = con.prepareStatement("select " + USERDATA_COL + " from UserData where hardTokenIssuerId=? and tokenType>? and (status=? or status=?)" );            ps.setInt(1,issuerid);            ps.setInt(2,SecConst.TOKEN_SOFT);            ps.setInt(3,UserDataConstants.STATUS_NEW);            ps.setInt(4,UserDataConstants.STATUS_KEYRECOVERY);            // Execute query.            rs = ps.executeQuery();            // Assemble result.           if(rs.next()){           	  // TODO add support for Extended Information              returnval = new UserDataVO(rs.getString(1), rs.getString(2), rs.getInt(14), rs.getString(3), rs.getString(4), rs.getInt(5), rs.getInt(6)                                               , rs.getInt(10), rs.getInt(11)                                               , new java.util.Date(rs.getLong(8)), new java.util.Date(rs.getLong(9))                                               ,  rs.getInt(12), rs.getInt(13),null);              returnval.setPassword(rs.getString(7));              debug("found user" + returnval.getUsername());            }            if(returnval !=null){              getHardTokenSession().getIsHardTokenProfileAvailableToIssuer(admin, issuerid, returnval);

⌨️ 快捷键说明

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