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

📄 rainterfacebean.java

📁 一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/************************************************************************* *                                                                       * *  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.ui.web.admin.rainterface;import java.math.BigInteger;import java.rmi.RemoteException;import java.security.cert.X509Certificate;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.Iterator;import java.util.TreeMap;import javax.ejb.CreateException;import javax.ejb.FinderException;import javax.naming.NamingException;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;import org.ejbca.core.ejb.ServiceLocator;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.hardtoken.IHardTokenSessionLocal;import org.ejbca.core.ejb.hardtoken.IHardTokenSessionLocalHome;import org.ejbca.core.ejb.keyrecovery.IKeyRecoverySessionLocal;import org.ejbca.core.ejb.keyrecovery.IKeyRecoverySessionLocalHome;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.ejb.ra.userdatasource.IUserDataSourceSessionLocal;import org.ejbca.core.ejb.ra.userdatasource.IUserDataSourceSessionLocalHome;import org.ejbca.core.model.SecConst;import org.ejbca.core.model.authorization.AuthorizationDeniedException;import org.ejbca.core.model.authorization.AvailableAccessRules;import org.ejbca.core.model.ca.certificateprofiles.CertificateProfile;import org.ejbca.core.model.ca.crl.RevokedCertInfo;import org.ejbca.core.model.log.Admin;import org.ejbca.core.model.ra.UserDataConstants;import org.ejbca.core.model.ra.UserDataVO;import org.ejbca.core.model.ra.raadmin.EndEntityProfile;import org.ejbca.ui.web.admin.configuration.EjbcaWebBean;import org.ejbca.ui.web.admin.configuration.InformationMemory;import org.ejbca.util.CertTools;import org.ejbca.util.StringTools;import org.ejbca.util.query.Query;/** * A java bean handling the interface between EJBCA ra module and JSP pages. * * @author  Philip Vendil * @version $Id: RAInterfaceBean.java,v 1.14 2006/09/27 09:28:27 herrvendil Exp $ */public class RAInterfaceBean implements java.io.Serializable {        private static Logger log = Logger.getLogger(RAInterfaceBean.class);        // Public constants.    public static final int MAXIMUM_QUERY_ROWCOUNT = SecConst.MAXIMUM_QUERY_ROWCOUNT;        public static final String[] tokentexts = SecConst.TOKENTEXTS;    public static final int[]    tokenids   = SecConst.TOKENIDS;        /** Creates new RaInterfaceBean */    public RAInterfaceBean()  {        users = new UsersView();        addedusermemory = new AddedUserMemory();    }    // Public methods.    public void initialize(HttpServletRequest request, EjbcaWebBean ejbcawebbean) throws  Exception{      log.debug(">initialize()");      if(!initialized){        if(request.getAttribute( "javax.servlet.request.X509Certificate" ) != null)          administrator = new Admin(((X509Certificate[]) request.getAttribute( "javax.servlet.request.X509Certificate" ))[0]);        else          administrator = new Admin(Admin.TYPE_PUBLIC_WEB_USER, request.getRemoteAddr());        // Get the UserAdminSession instance.        this.informationmemory = ejbcawebbean.getInformationMemory();                ServiceLocator locator = ServiceLocator.getInstance();        adminsessionhome = (IUserAdminSessionLocalHome) locator.getLocalHome(IUserAdminSessionLocalHome.COMP_NAME);        adminsession = adminsessionhome.create();        raadminsessionhome = (IRaAdminSessionLocalHome) locator.getLocalHome(IRaAdminSessionLocalHome.COMP_NAME);        raadminsession = raadminsessionhome.create();                certificatesessionhome = (ICertificateStoreSessionLocalHome) locator.getLocalHome(ICertificateStoreSessionLocalHome.COMP_NAME);        certificatesession = certificatesessionhome.create();        IAuthorizationSessionLocalHome authorizationsessionhome = (IAuthorizationSessionLocalHome) locator.getLocalHome(IAuthorizationSessionLocalHome.COMP_NAME);        authorizationsession = authorizationsessionhome.create();        this.profiles = new EndEntityProfileDataHandler(administrator,raadminsession,authorizationsession,informationmemory);                IHardTokenSessionLocalHome hardtokensessionhome = (IHardTokenSessionLocalHome) locator.getLocalHome(IHardTokenSessionLocalHome.COMP_NAME);        hardtokensession = hardtokensessionhome.create();        IKeyRecoverySessionLocalHome keyrecoverysessionhome = (IKeyRecoverySessionLocalHome) locator.getLocalHome(IKeyRecoverySessionLocalHome.COMP_NAME);        keyrecoverysession = keyrecoverysessionhome.create();                IUserDataSourceSessionLocalHome userdatasourcesessionhome = (IUserDataSourceSessionLocalHome) locator.getLocalHome(IUserDataSourceSessionLocalHome.COMP_NAME);        userdatasourcesession = userdatasourcesessionhome.create();                initialized =true;      } else {          log.debug("=initialize(): already initialized");      }      log.debug("<initialize()");    }        /* Adds a user to the database, the string array must be in format defined in class UserView. */    public void addUser(UserView userdata) throws Exception{        log.debug(">addUser()");                if(userdata.getEndEntityProfileId() != 0){        	UserDataVO uservo = new UserDataVO(userdata.getUsername(), userdata.getSubjectDN(), userdata.getCAId(), userdata.getSubjectAltName(),         			userdata.getEmail(), UserDataConstants.STATUS_NEW, userdata.getType(), userdata.getEndEntityProfileId(), userdata.getCertificateProfileId(),        			null,null, userdata.getTokenType(), userdata.getHardTokenIssuerId(), null);        	uservo.setPassword(userdata.getPassword());        	uservo.setExtendedinformation(userdata.getExtendedInformation());        	adminsession.addUser(administrator, uservo, userdata.getClearTextPassword());        	addedusermemory.addUser(userdata);        } else {            log.debug("=addUser(): profile id not set, user not created");        }        log.debug("<addUser()");    }        /* Removes a number of users from the database.     *     * @param usernames an array of usernames to delete.     * @return false if administrator wasn't authorized to delete all of given users.     * */    public boolean deleteUsers(String[] usernames) throws Exception{      log.debug(">deleteUsers()");      boolean success = true;      for(int i=0; i < usernames.length; i++){         try{           adminsession.deleteUser(administrator, usernames[i]);         }catch(AuthorizationDeniedException e){           success = false;         }      }      log.debug("<deleteUsers(): " + success);      return success;    }    /* Changes the status of a number of users from the database.     *     * @param usernames an array of usernames to change.     * @param status gives the status to apply to users, should be one of UserDataRemote.STATUS constants.     * @return false if administrator wasn't authorized to change all of the given users.     * */    public boolean setUserStatuses(String[] usernames, String status) throws Exception{      log.debug(">setUserStatuses()");      boolean success = true;      int intstatus = 0;      try{        intstatus = Integer.parseInt(status);      }catch(Exception e){}      for(int i=0; i < usernames.length; i++){        try{          adminsession.setUserStatus(administrator, usernames[i],intstatus);        }catch(AuthorizationDeniedException e){           success = false;        }      }      log.debug("<setUserStatuses(): " + success);      return success;    }    /** Revokes the given users.     *     * @param users an array of usernames to revoke.     * @param reason reason(s) of revokation.     * @return false if administrator wasn't authorized to revoke all of the given users.     */    public boolean revokeUsers(String[] usernames, int reason) throws  Exception{      log.debug(">revokeUsers()");      boolean success = true;      for(int i=0; i < usernames.length; i++){        try{          adminsession.revokeUser(administrator, usernames[i], reason);        }catch( AuthorizationDeniedException e){          success =false;        }      }      log.debug("<revokeUsers(): " + success);      return success;    }    /** Revokes the  certificate with certificate serno.     *     * @param serno serial number of certificate to revoke.     * @param issuerdn the issuerdn of certificate to revoke.     * @param reason reason(s) of revokation.     * @return false if administrator wasn't authorized to revoke the given certificate.     */    public boolean revokeCert(BigInteger serno, String issuerdn, String username, int reason) throws  Exception{      log.debug(">revokeCert()");      boolean success = true;      try{        adminsession.revokeCert(administrator, serno, issuerdn, username, reason);      }catch( AuthorizationDeniedException e){        success =false;      }      log.debug("<revokeCert(): " + success);      return success;    }    /**      * Reactivates the certificate with certificate serno.     *     * @param serno serial number of certificate to reactivate.     * @param issuerdn the issuerdn of certificate to reactivate.     * @param username the username joined to the certificate.     * @return false if administrator wasn't authorized to unrevoke the given certificate.     */    public boolean unrevokeCert(BigInteger serno, String issuerdn, String username) throws Exception {      log.debug(">unrevokeCert()");      boolean success = true;      try{     	      	 RevokedCertInfo revinfo = certificatesession.isRevoked(administrator, issuerdn, serno);     	      	 if ( revinfo != null && revinfo.getReason() == RevokedCertInfo.REVOKATION_REASON_CERTIFICATEHOLD ){     		  	    	 //-- Find the UserView for the username, we must change his status 	    	 UserView userView = findUser(username); 	    	  			 CertificateProfile certificateProfile = certificatesession.getCertificateProfile(administrator, userView.getCertificateProfileId()); 			 Collection publisherList = certificateProfile.getPublisherList(); 			 			 //-- Try to change the certificate status 			 certificatesession.setRevokeStatus(administrator, issuerdn, serno, publisherList, RevokedCertInfo.NOT_REVOKED); 			 	         if ( !certificatesession.checkIfAllRevoked(administrator, userView.getUsername()) ) { 	        	 UserDataVO vo = adminsession.findUser(administrator, userView.getUsername()); 	        	 // Don't change status if it is already the same 	        	 if (vo.getStatus() != UserDataConstants.STATUS_GENERATED) { 	 	        	 adminsession.setUserStatus(administrator, userView.getUsername(), UserDataConstants.STATUS_GENERATED); 	        		  	        	 } 		     } 		             	 }         }catch( AuthorizationDeniedException e){        success = false;      }      log.debug("<unrevokeCert(): " + success);      return success;    }        /* Changes the userdata  */    public void changeUserData(UserView userdata) throws Exception {        log.debug(">changeUserData()");        addedusermemory.changeUser(userdata);        if(userdata.getPassword() != null && userdata.getPassword().trim().equals(""))          userdata.setPassword(null);    	UserDataVO uservo = new UserDataVO(userdata.getUsername(), userdata.getSubjectDN(), userdata.getCAId(), userdata.getSubjectAltName(),     			userdata.getEmail(), userdata.getStatus(), userdata.getType(), userdata.getEndEntityProfileId(), userdata.getCertificateProfileId(),    			null,null, userdata.getTokenType(), userdata.getHardTokenIssuerId(), null);

⌨️ 快捷键说明

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