Java tutorial
/************************************************************************* * * * EJBCA Community: 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.hardtokeninterface; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.cesecore.authorization.AuthorizationDeniedException; import org.cesecore.authorization.control.StandardRules; import org.ejbca.core.model.hardtoken.HardTokenProfileExistsException; import org.ejbca.core.model.hardtoken.profiles.EIDProfile; import org.ejbca.core.model.hardtoken.profiles.EnhancedEIDProfile; import org.ejbca.core.model.hardtoken.profiles.HardTokenProfile; import org.ejbca.core.model.hardtoken.profiles.HardTokenProfileWithAdressLabel; import org.ejbca.core.model.hardtoken.profiles.HardTokenProfileWithPINEnvelope; import org.ejbca.core.model.hardtoken.profiles.HardTokenProfileWithReceipt; import org.ejbca.core.model.hardtoken.profiles.HardTokenProfileWithVisualLayout; import org.ejbca.core.model.hardtoken.profiles.IAdressLabelSettings; import org.ejbca.core.model.hardtoken.profiles.IPINEnvelopeSettings; import org.ejbca.core.model.hardtoken.profiles.IReceiptSettings; import org.ejbca.core.model.hardtoken.profiles.IVisualLayoutSettings; import org.ejbca.core.model.hardtoken.profiles.SwedishEIDProfile; import org.ejbca.core.model.hardtoken.profiles.TurkishEIDProfile; import org.ejbca.ui.web.RequestHelper; import org.ejbca.ui.web.admin.configuration.EjbcaWebBean; /** * Contains help methods used to parse a hard token profile jsp page requests. * * @version $Id: EditHardTokenProfileJSPHelper.java 20942 2015-03-19 15:17:48Z mikekushner $ */ public class EditHardTokenProfileJSPHelper implements java.io.Serializable { private static final long serialVersionUID = -310960445499242212L; public static final String ACTION = "action"; public static final String ACTION_EDIT_HARDTOKENPROFILES = "edithardtokenprofiles"; public static final String ACTION_EDIT_HARDTOKENPROFILE = "edithardtokenprofile"; public static final String ACTION_UPLOADENVELOPETEMP = "uploadenvelopetemp"; public static final String ACTION_UPLOADVISUALTEMP = "uploadvisualtemp"; public static final String ACTION_UPLOADRECEIPTTEMP = "uploadreceipttemp"; public static final String ACTION_UPLOADADRESSLABELTEMP = "uploadadresstemp"; public static final String ACTION_CHANGE_PROFILETYPE = "changeprofiletype"; public static final String CHECKBOX_VALUE = HardTokenProfile.TRUE; // Used in profiles.jsp public static final String BUTTON_EDIT_HARDTOKENPROFILES = "buttonedithardtokenprofile"; public static final String BUTTON_DELETE_HARDTOKENPROFILES = "buttondeletehardtokenprofile"; public static final String BUTTON_ADD_HARDTOKENPROFILES = "buttonaddhardtokenprofile"; public static final String BUTTON_RENAME_HARDTOKENPROFILES = "buttonrenamehardtokenprofile"; public static final String BUTTON_CLONE_HARDTOKENPROFILES = "buttonclonehardtokenprofile"; public static final String SELECT_HARDTOKENPROFILES = "selecthardtokenprofile"; public static final String TEXTFIELD_HARDTOKENPROFILESNAME = "textfieldhardtokenprofilename"; public static final String HIDDEN_HARDTOKENPROFILENAME = "hiddenhardtokenprofilename"; // Buttons used in profile.jsp public static final String BUTTON_SAVE = "buttonsave"; public static final String BUTTON_CANCEL = "buttoncancel"; public static final String BUTTON_UPLOADENVELOPETEMP = "buttonuploadenvelopetemplate"; public static final String BUTTON_UPLOADVISUALTEMP = "buttonuploadvisualtemplate"; public static final String BUTTON_UPLOADRECEIPTTEMP = "buttonuploadreceipttemplate"; public static final String BUTTON_UPLOADADRESSLABELTEMP = "buttonuploadadresslabeltemplate"; public static final String BUTTON_UPLOADFILE = "buttonuploadfile"; public static final String TYPE_SWEDISHEID = "typeswedisheid"; public static final String TYPE_ENCHANCEDEID = "typeenchancedeid"; public static final String TYPE_TURKISHEID = "typeturkisheid"; public static final String TEXTFIELD_VISUALVALIDITY = "textfieldvisualvalidity"; public static final String TEXTFIELD_SNPREFIX = "textfieldsnprefix"; public static final String CHECKBOX_EREASBLE = "checkboxereasable"; public static final String CHECKBOX_CERTWRITABLE = "checkboxcertwritable"; public static final String CHECKBOX_KEYRECOVERABLE = "checkboxkeyrecoverable"; public static final String CHECKBOX_REUSEOLDCERT = "checkboxreuseoldcert"; public static final String CHECKBOX_USEIDENTICALPINS = "useidenticalpins"; public static final String HIDDEN_HARDTOKENTYPE = "hiddenhardtokentype"; public static final String SELECT_HARDTOKENTYPE = "selecthardtokentype"; public static final String SELECT_CERTIFICATEPROFILE = "selectcertificateprofile"; public static final String SELECT_CA = "selectca"; public static final String SELECT_PINTYPE = "selectpintype"; public static final String SELECT_MINKEYLENGTH = "selectminkeylength"; public static final String SELECT_ENVELOPETYPE = "selectenvelopetype"; public static final String SELECT_NUMOFENVELOPECOPIES = "selectenvelopecopies"; public static final String SELECT_RECEIPTTYPE = "selectreceipttype"; public static final String SELECT_NUMOFRECEIPTCOPIES = "selectreceiptcopies"; public static final String SELECT_ADRESSLABELTYPE = "selectadresslabeltype"; public static final String SELECT_NUMOFADRESSLABELCOPIES = "selectadresslabelcopies"; public static final String SELECT_VISUALLAYOUTTYPE = "selectvisuallayouttype"; public static final String SELECT_NUMOFTOKENCOPIES = "selectnumoftokencopies"; public static final String SELECT_MINPINLENGTH = "selectminpinlength"; public static final String FILE_TEMPLATE = "filetemplate"; public static final int UPLOADMODE_ENVELOPE = 0; public static final int UPLOADMODE_VISUAL = 1; public static final int UPLOADMODE_RECEIPT = 2; public static final int UPLOADMODE_ADRESSLABEL = 3; public static final String PAGE_HARDTOKENPROFILE = "hardtokenprofilepage.jspf"; public static final String PAGE_HARDTOKENPROFILES = "hardtokenprofilespage.jspf"; public static final String PAGE_UPLOADTEMPLATE = "uploadtemplate.jspf"; /** Creates new LogInterfaceBean */ public EditHardTokenProfileJSPHelper() { } // Public methods. /** * Method that initialized the bean. * * @param request is a reference to the http request. */ public void initialize(EjbcaWebBean ejbcawebbean, HardTokenInterfaceBean hardtokenbean) throws Exception { if (!initialized) { this.hardtokenbean = hardtokenbean; initialized = true; issuperadministrator = false; try { issuperadministrator = ejbcawebbean.isAuthorizedNoLog(StandardRules.ROLE_ROOT.resource()); } catch (AuthorizationDeniedException ade) { } } } public String parseRequest(HttpServletRequest request) throws AuthorizationDeniedException { String includefile = PAGE_HARDTOKENPROFILES; String profile = null; HardTokenProfileDataHandler handler = hardtokenbean.getHardTokenProfileDataHandler(); String action = null; InputStream file = null; boolean buttonupload = false; String filename = null; try { RequestHelper.setDefaultCharacterEncoding(request); } catch (UnsupportedEncodingException e1) { // ignore } if (ServletFileUpload.isMultipartContent(request)) { try { final DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); diskFileItemFactory.setSizeThreshold(1999999); ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory); upload.setSizeMax(2000000); List<FileItem> items = upload.parseRequest(request); Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (item.isFormField()) { if (item.getFieldName().equals(ACTION)) { action = item.getString(); } if (item.getFieldName().equals(HIDDEN_HARDTOKENPROFILENAME)) { profilename = item.getString(); } if (item.getFieldName().equals(BUTTON_CANCEL)) { // do nothing } if (item.getFieldName().equals(BUTTON_UPLOADFILE)) { buttonupload = true; } } else { file = item.getInputStream(); filename = item.getName(); } } } catch (IOException e) { fileuploadfailed = true; includefile = PAGE_HARDTOKENPROFILE; } catch (FileUploadException e) { fileuploadfailed = true; includefile = PAGE_HARDTOKENPROFILE; } } else { action = request.getParameter(ACTION); } if (action != null) { if (action.equals(ACTION_EDIT_HARDTOKENPROFILES)) { if (request.getParameter(BUTTON_EDIT_HARDTOKENPROFILES) != null) { // Display profilepage.jsp profile = request.getParameter(SELECT_HARDTOKENPROFILES); if (profile != null) { if (!profile.trim().equals("")) { includefile = PAGE_HARDTOKENPROFILE; this.profilename = profile; this.profiledata = handler.getHardTokenProfile(profilename); } else { profile = null; } } if (profile == null) { includefile = PAGE_HARDTOKENPROFILES; } } if (request.getParameter(BUTTON_DELETE_HARDTOKENPROFILES) != null) { // Delete profile and display profilespage. profile = request.getParameter(SELECT_HARDTOKENPROFILES); if (profile != null) { if (!profile.trim().equals("")) { hardtokenprofiledeletefailed = handler.removeHardTokenProfile(profile); } } includefile = PAGE_HARDTOKENPROFILES; } if (request.getParameter(BUTTON_RENAME_HARDTOKENPROFILES) != null) { // Rename selected profile and display profilespage. String newhardtokenprofilename = request.getParameter(TEXTFIELD_HARDTOKENPROFILESNAME); String oldhardtokenprofilename = request.getParameter(SELECT_HARDTOKENPROFILES); if (oldhardtokenprofilename != null && newhardtokenprofilename != null) { if (!newhardtokenprofilename.trim().equals("") && !oldhardtokenprofilename.trim().equals("")) { try { handler.renameHardTokenProfile(oldhardtokenprofilename.trim(), newhardtokenprofilename.trim()); } catch (HardTokenProfileExistsException e) { hardtokenprofileexists = true; } } } includefile = PAGE_HARDTOKENPROFILES; } if (request.getParameter(BUTTON_ADD_HARDTOKENPROFILES) != null) { // Add profile and display profilespage. profile = request.getParameter(TEXTFIELD_HARDTOKENPROFILESNAME); if (profile != null) { if (!profile.trim().equals("")) { try { if (!handler.addHardTokenProfile(profile.trim(), new SwedishEIDProfile())) { profilemalformed = true; } } catch (HardTokenProfileExistsException e) { hardtokenprofileexists = true; } } } includefile = PAGE_HARDTOKENPROFILES; } if (request.getParameter(BUTTON_CLONE_HARDTOKENPROFILES) != null) { // clone profile and display profilespage. String newhardtokenprofilename = request.getParameter(TEXTFIELD_HARDTOKENPROFILESNAME); String oldhardtokenprofilename = request.getParameter(SELECT_HARDTOKENPROFILES); if (oldhardtokenprofilename != null && newhardtokenprofilename != null) { if (!newhardtokenprofilename.trim().equals("") && !oldhardtokenprofilename.trim().equals("")) { try { handler.cloneHardTokenProfile(oldhardtokenprofilename.trim(), newhardtokenprofilename.trim()); } catch (HardTokenProfileExistsException e) { hardtokenprofileexists = true; } } } includefile = PAGE_HARDTOKENPROFILES; } } if (action.equals(ACTION_EDIT_HARDTOKENPROFILE)) { // Display edit access rules page. profile = request.getParameter(HIDDEN_HARDTOKENPROFILENAME); if (profile != null) { if (!profile.trim().equals("")) { if (request.getParameter(BUTTON_SAVE) != null || request.getParameter(BUTTON_UPLOADENVELOPETEMP) != null || request.getParameter(BUTTON_UPLOADVISUALTEMP) != null || request.getParameter(BUTTON_UPLOADRECEIPTTEMP) != null || request.getParameter(BUTTON_UPLOADADRESSLABELTEMP) != null) { if (profiledata == null) { String tokentype = request.getParameter(HIDDEN_HARDTOKENTYPE); if (tokentype.equals(TYPE_SWEDISHEID)) { profiledata = new SwedishEIDProfile(); } if (tokentype.equals(TYPE_ENCHANCEDEID)) { profiledata = new EnhancedEIDProfile(); } if (tokentype.equals(TYPE_TURKISHEID)) { profiledata = new TurkishEIDProfile(); } } // Save changes. // General settings String value = request.getParameter(TEXTFIELD_SNPREFIX); if (value != null) { value = value.trim(); profiledata.setHardTokenSNPrefix(value); } value = request.getParameter(CHECKBOX_EREASBLE); if (value != null) { profiledata.setEreasableToken(value.equals(CHECKBOX_VALUE)); } else { profiledata.setEreasableToken(false); } value = request.getParameter(SELECT_NUMOFTOKENCOPIES); if (value != null) { profiledata.setNumberOfCopies(Integer.parseInt(value)); } value = request.getParameter(CHECKBOX_USEIDENTICALPINS); if (value != null) { profiledata.setGenerateIdenticalPINForCopies(value.equals(CHECKBOX_VALUE)); } else { profiledata.setGenerateIdenticalPINForCopies(false); } if (profiledata instanceof HardTokenProfileWithPINEnvelope) { value = request.getParameter(SELECT_ENVELOPETYPE); if (value != null) { ((HardTokenProfileWithPINEnvelope) profiledata) .setPINEnvelopeType(Integer.parseInt(value)); } value = request.getParameter(SELECT_NUMOFENVELOPECOPIES); if (value != null) { ((HardTokenProfileWithPINEnvelope) profiledata) .setNumberOfPINEnvelopeCopies(Integer.parseInt(value)); } value = request.getParameter(TEXTFIELD_VISUALVALIDITY); if (value != null) { ((HardTokenProfileWithPINEnvelope) profiledata) .setVisualValidity(Integer.parseInt(value)); } } if (profiledata instanceof HardTokenProfileWithVisualLayout) { HardTokenProfileWithVisualLayout visprof = (HardTokenProfileWithVisualLayout) profiledata; value = request.getParameter(SELECT_VISUALLAYOUTTYPE); if (value != null) { visprof.setVisualLayoutType(Integer.parseInt(value)); } } if (profiledata instanceof HardTokenProfileWithReceipt) { value = request.getParameter(SELECT_RECEIPTTYPE); if (value != null) { ((HardTokenProfileWithReceipt) profiledata) .setReceiptType(Integer.parseInt(value)); } value = request.getParameter(SELECT_NUMOFRECEIPTCOPIES); if (value != null) { ((HardTokenProfileWithReceipt) profiledata) .setNumberOfReceiptCopies(Integer.parseInt(value)); } } if (profiledata instanceof HardTokenProfileWithAdressLabel) { value = request.getParameter(SELECT_ADRESSLABELTYPE); if (value != null) { ((HardTokenProfileWithAdressLabel) profiledata) .setAdressLabelType(Integer.parseInt(value)); } value = request.getParameter(SELECT_NUMOFADRESSLABELCOPIES); if (value != null) { ((HardTokenProfileWithAdressLabel) profiledata) .setNumberOfAdressLabelCopies(Integer.parseInt(value)); } } if (profiledata instanceof SwedishEIDProfile) { SwedishEIDProfile sweprof = (SwedishEIDProfile) profiledata; value = request.getParameter(SELECT_MINKEYLENGTH); if (value != null) { int val = Integer.parseInt(value); sweprof.setMinimumKeyLength(SwedishEIDProfile.CERTUSAGE_SIGN, val); sweprof.setMinimumKeyLength(SwedishEIDProfile.CERTUSAGE_AUTHENC, val); sweprof.setKeyType(SwedishEIDProfile.CERTUSAGE_SIGN, EIDProfile.KEYTYPE_RSA); sweprof.setKeyType(SwedishEIDProfile.CERTUSAGE_AUTHENC, EIDProfile.KEYTYPE_RSA); } value = request.getParameter(CHECKBOX_CERTWRITABLE); if (value != null) { sweprof.setCertWritable(SwedishEIDProfile.CERTUSAGE_SIGN, value.equals(CHECKBOX_VALUE)); sweprof.setCertWritable(SwedishEIDProfile.CERTUSAGE_AUTHENC, value.equals(CHECKBOX_VALUE)); } else { sweprof.setCertWritable(SwedishEIDProfile.CERTUSAGE_SIGN, false); sweprof.setCertWritable(SwedishEIDProfile.CERTUSAGE_AUTHENC, false); } value = request.getParameter(SELECT_CERTIFICATEPROFILE + "0"); if (value != null) { sweprof.setCertificateProfileId(SwedishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_CA + "0"); if (value != null) { sweprof.setCAId(SwedishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_PINTYPE + "0"); if (value != null) { sweprof.setPINType(SwedishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_MINPINLENGTH + "0"); if (value != null) { sweprof.setMinimumPINLength(SwedishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_CERTIFICATEPROFILE + "1"); if (value != null) { sweprof.setCertificateProfileId(SwedishEIDProfile.CERTUSAGE_AUTHENC, Integer.parseInt(value)); } value = request.getParameter(SELECT_CA + "1"); if (value != null) { sweprof.setCAId(SwedishEIDProfile.CERTUSAGE_AUTHENC, Integer.parseInt(value)); } value = request.getParameter(SELECT_PINTYPE + "1"); if (value != null) { sweprof.setPINType(SwedishEIDProfile.CERTUSAGE_AUTHENC, Integer.parseInt(value)); } value = request.getParameter(SELECT_MINPINLENGTH + "1"); if (value != null) { sweprof.setMinimumPINLength(SwedishEIDProfile.CERTUSAGE_AUTHENC, Integer.parseInt(value)); } } if (profiledata instanceof TurkishEIDProfile) { TurkishEIDProfile turkprof = (TurkishEIDProfile) profiledata; value = request.getParameter(SELECT_MINKEYLENGTH); if (value != null) { int val = Integer.parseInt(value); turkprof.setMinimumKeyLength(TurkishEIDProfile.CERTUSAGE_SIGN, val); turkprof.setMinimumKeyLength(TurkishEIDProfile.CERTUSAGE_AUTHENC, val); turkprof.setKeyType(TurkishEIDProfile.CERTUSAGE_SIGN, EIDProfile.KEYTYPE_RSA); turkprof.setKeyType(TurkishEIDProfile.CERTUSAGE_AUTHENC, EIDProfile.KEYTYPE_RSA); } value = request.getParameter(CHECKBOX_CERTWRITABLE); if (value != null) { turkprof.setCertWritable(TurkishEIDProfile.CERTUSAGE_SIGN, value.equals(CHECKBOX_VALUE)); turkprof.setCertWritable(TurkishEIDProfile.CERTUSAGE_AUTHENC, value.equals(CHECKBOX_VALUE)); } else { turkprof.setCertWritable(TurkishEIDProfile.CERTUSAGE_SIGN, false); turkprof.setCertWritable(TurkishEIDProfile.CERTUSAGE_AUTHENC, false); } value = request.getParameter(SELECT_CERTIFICATEPROFILE + "0"); if (value != null) { turkprof.setCertificateProfileId(TurkishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_CA + "0"); if (value != null) { turkprof.setCAId(TurkishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_PINTYPE + "0"); if (value != null) { turkprof.setPINType(TurkishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_MINPINLENGTH + "0"); if (value != null) { turkprof.setMinimumPINLength(TurkishEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_CERTIFICATEPROFILE + "1"); if (value != null) { turkprof.setCertificateProfileId(TurkishEIDProfile.CERTUSAGE_AUTHENC, Integer.parseInt(value)); } value = request.getParameter(SELECT_CA + "1"); if (value != null) { turkprof.setCAId(TurkishEIDProfile.CERTUSAGE_AUTHENC, Integer.parseInt(value)); } } if (profiledata instanceof EnhancedEIDProfile) { EnhancedEIDProfile enhprof = (EnhancedEIDProfile) profiledata; value = request.getParameter(SELECT_MINKEYLENGTH); if (value != null) { int val = Integer.parseInt(value); enhprof.setMinimumKeyLength(EnhancedEIDProfile.CERTUSAGE_SIGN, val); enhprof.setMinimumKeyLength(EnhancedEIDProfile.CERTUSAGE_AUTH, val); enhprof.setMinimumKeyLength(EnhancedEIDProfile.CERTUSAGE_ENC, val); enhprof.setKeyType(EnhancedEIDProfile.CERTUSAGE_SIGN, EIDProfile.KEYTYPE_RSA); enhprof.setKeyType(EnhancedEIDProfile.CERTUSAGE_ENC, EIDProfile.KEYTYPE_RSA); enhprof.setKeyType(EnhancedEIDProfile.CERTUSAGE_ENC, EIDProfile.KEYTYPE_RSA); } value = request.getParameter(CHECKBOX_CERTWRITABLE); if (value != null) { enhprof.setCertWritable(EnhancedEIDProfile.CERTUSAGE_SIGN, value.equals(CHECKBOX_VALUE)); enhprof.setCertWritable(EnhancedEIDProfile.CERTUSAGE_AUTH, value.equals(CHECKBOX_VALUE)); enhprof.setCertWritable(EnhancedEIDProfile.CERTUSAGE_ENC, value.equals(CHECKBOX_VALUE)); } else { enhprof.setCertWritable(EnhancedEIDProfile.CERTUSAGE_SIGN, false); enhprof.setCertWritable(EnhancedEIDProfile.CERTUSAGE_AUTH, false); enhprof.setCertWritable(EnhancedEIDProfile.CERTUSAGE_ENC, false); } value = request.getParameter(SELECT_CERTIFICATEPROFILE + "0"); if (value != null) { enhprof.setCertificateProfileId(EnhancedEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_CA + "0"); if (value != null) { enhprof.setCAId(EnhancedEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_PINTYPE + "0"); if (value != null) { enhprof.setPINType(EnhancedEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } value = request.getParameter(SELECT_MINPINLENGTH + "0"); if (value != null) { enhprof.setMinimumPINLength(EnhancedEIDProfile.CERTUSAGE_SIGN, Integer.parseInt(value)); } enhprof.setIsKeyRecoverable(EnhancedEIDProfile.CERTUSAGE_SIGN, false); value = request.getParameter(SELECT_CERTIFICATEPROFILE + "1"); if (value != null) { enhprof.setCertificateProfileId(EnhancedEIDProfile.CERTUSAGE_AUTH, Integer.parseInt(value)); } value = request.getParameter(SELECT_CA + "1"); if (value != null) { enhprof.setCAId(EnhancedEIDProfile.CERTUSAGE_AUTH, Integer.parseInt(value)); } value = request.getParameter(SELECT_PINTYPE + "1"); if (value != null) { enhprof.setPINType(EnhancedEIDProfile.CERTUSAGE_AUTH, Integer.parseInt(value)); } value = request.getParameter(SELECT_MINPINLENGTH + "1"); if (value != null) { enhprof.setMinimumPINLength(EnhancedEIDProfile.CERTUSAGE_AUTH, Integer.parseInt(value)); } enhprof.setIsKeyRecoverable(EnhancedEIDProfile.CERTUSAGE_AUTH, false); value = request.getParameter(SELECT_CERTIFICATEPROFILE + "2"); if (value != null) { enhprof.setCertificateProfileId(EnhancedEIDProfile.CERTUSAGE_ENC, Integer.parseInt(value)); } value = request.getParameter(SELECT_CA + "2"); if (value != null) { enhprof.setCAId(EnhancedEIDProfile.CERTUSAGE_ENC, Integer.parseInt(value)); } value = request.getParameter(SELECT_PINTYPE + "2"); if (value != null) { enhprof.setPINType(EnhancedEIDProfile.CERTUSAGE_ENC, Integer.parseInt(value)); } value = request.getParameter(SELECT_MINPINLENGTH + "2"); if (value != null) { enhprof.setMinimumPINLength(EnhancedEIDProfile.CERTUSAGE_ENC, Integer.parseInt(value)); } value = request.getParameter(CHECKBOX_KEYRECOVERABLE + "2"); if (value != null) { enhprof.setIsKeyRecoverable(EnhancedEIDProfile.CERTUSAGE_ENC, value.equals(CHECKBOX_VALUE)); } else { enhprof.setIsKeyRecoverable(EnhancedEIDProfile.CERTUSAGE_ENC, false); } value = request.getParameter(CHECKBOX_REUSEOLDCERT + "2"); if (value != null) { enhprof.setReuseOldCertificate(EnhancedEIDProfile.CERTUSAGE_ENC, value.equals(CHECKBOX_VALUE)); } else { enhprof.setReuseOldCertificate(EnhancedEIDProfile.CERTUSAGE_ENC, false); } } if (request.getParameter(BUTTON_SAVE) != null) { if (!handler.changeHardTokenProfile(profile, profiledata)) { profilemalformed = true; } includefile = PAGE_HARDTOKENPROFILES; } if (request.getParameter(BUTTON_UPLOADENVELOPETEMP) != null) { uploadmode = UPLOADMODE_ENVELOPE; includefile = PAGE_UPLOADTEMPLATE; } if (request.getParameter(BUTTON_UPLOADVISUALTEMP) != null) { uploadmode = UPLOADMODE_VISUAL; includefile = PAGE_UPLOADTEMPLATE; } if (request.getParameter(BUTTON_UPLOADRECEIPTTEMP) != null) { uploadmode = UPLOADMODE_RECEIPT; includefile = PAGE_UPLOADTEMPLATE; } if (request.getParameter(BUTTON_UPLOADADRESSLABELTEMP) != null) { uploadmode = UPLOADMODE_ADRESSLABEL; includefile = PAGE_UPLOADTEMPLATE; } } if (request.getParameter(BUTTON_CANCEL) != null) { // Don't save changes. includefile = PAGE_HARDTOKENPROFILES; } } } } if (action.equals(ACTION_CHANGE_PROFILETYPE)) { this.profilename = request.getParameter(HIDDEN_HARDTOKENPROFILENAME); String value = request.getParameter(SELECT_HARDTOKENTYPE); if (value != null) { int profiletype = Integer.parseInt(value); EIDProfile newprofile = null; switch (profiletype) { case SwedishEIDProfile.TYPE_SWEDISHEID: newprofile = new SwedishEIDProfile(); break; case EnhancedEIDProfile.TYPE_ENHANCEDEID: newprofile = new EnhancedEIDProfile(); break; case TurkishEIDProfile.TYPE_TURKISHEID: newprofile = new TurkishEIDProfile(); break; } if (profiledata != null && profiledata instanceof EIDProfile) { ((EIDProfile) profiledata).clone(newprofile); newprofile.reInit(); profiledata = newprofile; } } includefile = PAGE_HARDTOKENPROFILE; } if (action.equals(ACTION_UPLOADENVELOPETEMP)) { if (buttonupload) { if (profiledata instanceof IPINEnvelopeSettings) { try { BufferedReader br = new BufferedReader(new InputStreamReader(file, "UTF8")); String filecontent = ""; String nextline = ""; while (nextline != null) { nextline = br.readLine(); if (nextline != null) { filecontent += nextline + "\n"; } } ((IPINEnvelopeSettings) profiledata).setPINEnvelopeData(filecontent); ((IPINEnvelopeSettings) profiledata).setPINEnvelopeTemplateFilename(filename); fileuploadsuccess = true; } catch (IOException ioe) { fileuploadfailed = true; } } } includefile = PAGE_HARDTOKENPROFILE; } if (action.equals(ACTION_UPLOADVISUALTEMP)) { if (profiledata instanceof IVisualLayoutSettings) { try { BufferedReader br = new BufferedReader(new InputStreamReader(file, "UTF8")); String filecontent = ""; String nextline = ""; while (nextline != null) { nextline = br.readLine(); if (nextline != null) { filecontent += nextline + "\n"; } } ((IVisualLayoutSettings) profiledata).setVisualLayoutData(filecontent); ((IVisualLayoutSettings) profiledata).setVisualLayoutTemplateFilename(filename); fileuploadsuccess = true; } catch (IOException ioe) { fileuploadfailed = true; } } includefile = PAGE_HARDTOKENPROFILE; } if (action.equals(ACTION_UPLOADRECEIPTTEMP)) { if (profiledata instanceof IReceiptSettings) { try { BufferedReader br = new BufferedReader(new InputStreamReader(file, "UTF8")); String filecontent = ""; String nextline = ""; while (nextline != null) { nextline = br.readLine(); if (nextline != null) { filecontent += nextline + "\n"; } } ((IReceiptSettings) profiledata).setReceiptData(filecontent); ((IReceiptSettings) profiledata).setReceiptTemplateFilename(filename); fileuploadsuccess = true; } catch (IOException ioe) { fileuploadfailed = true; } } includefile = PAGE_HARDTOKENPROFILE; } if (action.equals(ACTION_UPLOADADRESSLABELTEMP)) { if (profiledata instanceof IAdressLabelSettings) { try { BufferedReader br = new BufferedReader(new InputStreamReader(file, "UTF8")); String filecontent = ""; String nextline = ""; while (nextline != null) { nextline = br.readLine(); if (nextline != null) { filecontent += nextline + "\n"; } } ((IAdressLabelSettings) profiledata).setAdressLabelData(filecontent); ((IAdressLabelSettings) profiledata).setAdressLabelTemplateFilename(filename); fileuploadsuccess = true; } catch (IOException ioe) { fileuploadfailed = true; } } includefile = PAGE_HARDTOKENPROFILE; } } return includefile; } public int getProfileType() { int retval = SwedishEIDProfile.TYPE_SWEDISHEID; if (profiledata instanceof SwedishEIDProfile) { retval = SwedishEIDProfile.TYPE_SWEDISHEID; } if (profiledata instanceof EnhancedEIDProfile) { retval = EnhancedEIDProfile.TYPE_ENHANCEDEID; } if (profiledata instanceof TurkishEIDProfile) { retval = TurkishEIDProfile.TYPE_TURKISHEID; } return retval; } // Private fields. private HardTokenInterfaceBean hardtokenbean; private boolean initialized = false; public boolean hardtokenprofileexists = false; public boolean profilemalformed = false; public boolean hardtokenprofiledeletefailed = false; public boolean issuperadministrator = false; public boolean fileuploadsuccess = false; public boolean fileuploadfailed = false; public HardTokenProfile profiledata = null; public String profilename = null; public int uploadmode = 0; }