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

📄 caexportservlet.java

📁 一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考
💻 JAVA
字号:
package org.ejbca.ui.web.admin.cainterface;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import org.ejbca.core.model.authorization.AvailableAccessRules;import org.ejbca.ui.web.RequestHelper;import org.ejbca.ui.web.admin.configuration.EjbcaWebBean;import org.ejbca.ui.web.pub.ServletUtils;/** * This servlet exports a CA as an octet/stream. * * @web.servlet name = "CAExport" *              display-name = "CAExportServlet" *              description="Returns the CA as a PKCS#12 file." *              load-on-startup = "99" * * @web.servlet-mapping url-pattern = "/ca/exportca" * */public class CAExportServlet extends HttpServlet {	private static final Logger log = Logger.getLogger(CAExportServlet.class);	private static final long serialVersionUID = 378499368926058906L;	public static final String HIDDEN_CANAME				= "hiddencaname";	public static final String TEXTFIELD_EXPORTCA_PASSWORD	= "textfieldexportcapassword";	/**	 * Initialize.	 */    public void init(ServletConfig config) throws ServletException {        super.init(config);    } // init    /**     * Handle HTTP Post. Redirect the request to doGet(..).      * This method should not be called explicitly.     *      * @param req The request.     * @param res The response.     */    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {	    log.debug(">doPost()");	    doGet(req, res);	    log.debug("<doPost()");    } //doPost    /**     * Validates the request parameters and outputs the CA as an PKCS#12 output/octet-stream.     * This method should not be called explicitly.     *      * @param req The request.     * @param res The response.	 */    public void doGet(HttpServletRequest req,  HttpServletResponse res) throws java.io.IOException, ServletException {	    log.debug(">doGet()");	    // Check if authorized	    EjbcaWebBean ejbcawebbean= (org.ejbca.ui.web.admin.configuration.EjbcaWebBean) req.getSession().getAttribute("ejbcawebbean");	    if ( ejbcawebbean == null ) {	      try {	    	  ejbcawebbean = (org.ejbca.ui.web.admin.configuration.EjbcaWebBean) java.beans.Beans.instantiate(this.getClass().getClassLoader(), org.ejbca.ui.web.admin.configuration.EjbcaWebBean.class.getName());	      } catch (ClassNotFoundException e) {	    	  throw new ServletException(e.getMessage());	      } catch (Exception e) {	    	  throw new ServletException ("Cannot create bean of class org.ejbca.ui.web.admin.configuration.EjbcaWebBean", e);	      }	       req.getSession().setAttribute("ejbcawebbean", ejbcawebbean);	    }	    try{	    	ejbcawebbean.initialize(req, AvailableAccessRules.ROLE_SUPERADMINISTRATOR);	    } catch(Exception e) {	    	throw new java.io.IOException("Authorization Denied");	    }	    RequestHelper.setDefaultCharacterEncoding(req);	    String caname = req.getParameter(HIDDEN_CANAME);	    String capassword = req.getParameter(TEXTFIELD_EXPORTCA_PASSWORD);	    javax.naming.Context ictx = null;	    log.debug("Got request from "+req.getRemoteAddr()+" to export "+caname);  		try{    		byte[] keystorebytes = null;    		if (ictx == null) {    			ictx = org.ejbca.core.ejb.InitialContextBuilder.getInstance().getInitialContext();    		}			org.ejbca.core.ejb.ca.caadmin.ICAAdminSessionHome home = (org.ejbca.core.ejb.ca.caadmin.ICAAdminSessionHome) javax.rmi.PortableRemoteObject.narrow(ictx.lookup("CAAdminSession"), org.ejbca.core.ejb.ca.caadmin.ICAAdminSessionHome.class );            			org.ejbca.core.ejb.ca.caadmin.ICAAdminSessionRemote caadminsession = home.create();		    if ( !caadminsession.isKeyStorePassword(ejbcawebbean.getAdminObject(), capassword) ) {		    	throw new IllegalArgumentException("Keystore password does not match user-supplied password.");		    }			keystorebytes = caadminsession.exportCAKeyStore(ejbcawebbean.getAdminObject(), caname, capassword.toCharArray(), capassword.toCharArray(), "SignatureKeyAlias", "EncryptionKeyAlias");            ServletUtils.removeCacheHeaders(res);	// We must remove cache headers for IE        	res.setContentType("application/octet-stream");        	res.setHeader("Cache-Control", "no-cache");        	res.setContentLength(keystorebytes.length);        	res.setHeader("Content-Disposition", "attachment;filename=\"" + caname + ".p12\"");	        res.getOutputStream().write(keystorebytes);  		} catch(Exception e) {	        res.setContentType("text/plain");	        res.sendError( HttpServletResponse.SC_BAD_REQUEST, e.getMessage() );  		} 	} // doGet} // CAExportServlet

⌨️ 快捷键说明

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