1 13 package org.ejbca.ui.web.admin.services.servicetypes; 14 15 import java.io.IOException ; 16 import java.util.ArrayList ; 17 import java.util.Collection ; 18 import java.util.Iterator ; 19 import java.util.List ; 20 import java.util.Properties ; 21 22 import javax.faces.model.SelectItem; 23 24 import org.ejbca.core.model.services.intervals.PeriodicalInterval; 25 import org.ejbca.core.model.services.workers.CertificateExpirationNotifierWorker; 26 import org.ejbca.ui.web.admin.configuration.EjbcaJSFHelper; 27 28 35 public class CertificateExpirationNotifierWorkerType extends WorkerType { 36 37 public static final String NAME = "CERTNOTIFICATIONWORKER"; 38 39 private Collection compatibleActionTypeNames = new ArrayList (); 40 private Collection compatibleIntervalTypeNames = new ArrayList (); 41 42 43 public static final String DEFAULT_TIMEUNIT = CertificateExpirationNotifierWorker.UNIT_DAYS; 44 public static final String DEFAULT_TIMEVALUE = "7"; 45 46 public static final boolean DEFAULT_USEENDUSERNOTIFICATIONS = false; 47 public static final boolean DEFAULT_USEADMINNOTIFICATIONS = false; 48 49 50 private List selectedCANamesToCheck = new ArrayList (); 51 private String timeUnit = DEFAULT_TIMEUNIT; 52 private String timeValue = DEFAULT_TIMEVALUE; 53 private boolean useEndUserNotifications = DEFAULT_USEENDUSERNOTIFICATIONS; 54 private boolean useAdminNotifications = DEFAULT_USEADMINNOTIFICATIONS; 55 private String endUserSubject = ""; 56 private String adminSubject = ""; 57 private String endUserMessage = ""; 58 private String adminMessage = ""; 59 60 61 62 public CertificateExpirationNotifierWorkerType(){ 63 super("certnotificationworker.jsp", NAME, true); 64 65 compatibleActionTypeNames.add(MailActionType.NAME); 66 67 compatibleIntervalTypeNames.add(PeriodicalIntervalType.NAME); 68 } 69 73 public Collection getCompatibleActionTypeNames() { 74 return compatibleActionTypeNames; 75 } 76 77 80 public Collection getCompatibleIntervalTypeNames() { 81 return compatibleIntervalTypeNames; 82 } 83 84 87 public String getClassPath() { 88 return "org.ejbca.core.model.services.workers.CertificateExpirationNotifierWorker"; 89 } 90 91 94 public Properties getProperties(ArrayList errorMessages) throws IOException { 95 Properties retval = new Properties (); 96 97 Iterator iter = selectedCANamesToCheck.iterator(); 98 String caIdString = ""; 99 while(iter.hasNext()){ 100 String cAid = (String ) iter.next(); 101 if(!cAid.trim().equals("")){ 102 if(caIdString.equals("")){ 103 caIdString = cAid; 104 }else{ 105 caIdString += ";"+cAid; 106 } 107 } 108 } 109 retval.setProperty(CertificateExpirationNotifierWorker.PROP_CAIDSTOCHECK, caIdString); 110 111 retval.setProperty(CertificateExpirationNotifierWorker.PROP_TIMEUNIT, timeUnit); 112 113 try{ 114 int value = Integer.parseInt(timeValue); 115 if(value < 1){ 116 throw new NumberFormatException (); 117 } 118 }catch(NumberFormatException e){ 119 errorMessages.add("TIMEBEFOREEXPIRATIONERROR"); 120 } 121 retval.setProperty(CertificateExpirationNotifierWorker.PROP_TIMEBEFOREEXPIRING, timeValue); 122 123 if(useEndUserNotifications){ 124 retval.setProperty(CertificateExpirationNotifierWorker.PROP_SENDTOENDUSERS, "TRUE"); 125 retval.setProperty(CertificateExpirationNotifierWorker.PROP_USERSUBJECT,endUserSubject); 126 retval.setProperty(CertificateExpirationNotifierWorker.PROP_USERMESSAGE,endUserMessage); 127 }else{ 128 retval.setProperty(CertificateExpirationNotifierWorker.PROP_SENDTOENDUSERS, "FALSE"); 129 retval.setProperty(CertificateExpirationNotifierWorker.PROP_USERSUBJECT,""); 130 retval.setProperty(CertificateExpirationNotifierWorker.PROP_USERMESSAGE,""); 131 } 132 133 if(useAdminNotifications){ 134 retval.setProperty(CertificateExpirationNotifierWorker.PROP_SENDTOADMINS, "TRUE"); 135 retval.setProperty(CertificateExpirationNotifierWorker.PROP_ADMINSUBJECT,adminSubject); 136 retval.setProperty(CertificateExpirationNotifierWorker.PROP_ADMINMESSAGE,adminMessage); 137 }else{ 138 retval.setProperty(CertificateExpirationNotifierWorker.PROP_SENDTOADMINS, "FALSE"); 139 retval.setProperty(CertificateExpirationNotifierWorker.PROP_ADMINSUBJECT,""); 140 retval.setProperty(CertificateExpirationNotifierWorker.PROP_ADMINMESSAGE,""); 141 } 142 143 144 return retval; 145 } 146 147 150 public boolean isCustom() { 151 return false; 152 } 153 154 157 public void setProperties(Properties properties) throws IOException { 158 selectedCANamesToCheck = new ArrayList (); 159 160 161 String [] caIdsToCheck = properties.getProperty(CertificateExpirationNotifierWorker.PROP_CAIDSTOCHECK,"").split(";"); 162 for(int i=0;i<caIdsToCheck.length;i++){ 163 selectedCANamesToCheck.add(caIdsToCheck[i]); 164 } 165 166 167 timeUnit = properties.getProperty(CertificateExpirationNotifierWorker.PROP_TIMEUNIT,DEFAULT_TIMEUNIT); 168 timeValue = properties.getProperty(CertificateExpirationNotifierWorker.PROP_TIMEBEFOREEXPIRING,DEFAULT_TIMEVALUE); 169 170 useEndUserNotifications = properties.getProperty(CertificateExpirationNotifierWorker.PROP_SENDTOENDUSERS,"").equalsIgnoreCase("TRUE"); 171 useAdminNotifications = properties.getProperty(CertificateExpirationNotifierWorker.PROP_SENDTOADMINS,"").equalsIgnoreCase("TRUE"); 172 173 endUserSubject = properties.getProperty(CertificateExpirationNotifierWorker.PROP_USERSUBJECT,""); 174 adminSubject = properties.getProperty(CertificateExpirationNotifierWorker.PROP_ADMINSUBJECT,""); 175 endUserMessage = properties.getProperty(CertificateExpirationNotifierWorker.PROP_USERMESSAGE,""); 176 adminMessage = properties.getProperty(CertificateExpirationNotifierWorker.PROP_ADMINMESSAGE,""); 177 178 } 179 180 public String getTimeUnit() { 181 return timeUnit; 182 } 183 184 public void setTimeUnit(String unit) { 185 this.timeUnit = unit; 186 } 187 188 public List getAvailableUnits(){ 189 ArrayList retval = new ArrayList (); 190 for(int i = 0 ; i<PeriodicalInterval.AVAILABLE_UNITS.length; i++){ 191 retval.add(new SelectItem(PeriodicalInterval.AVAILABLE_UNITS[i],(String ) EjbcaJSFHelper.getBean().getText().get(PeriodicalInterval.AVAILABLE_UNITS[i]))); 192 } 193 194 return retval; 195 } 196 public String getAdminMessage() { 197 return adminMessage; 198 } 199 public void setAdminMessage(String adminMessage) { 200 this.adminMessage = adminMessage; 201 } 202 public String getAdminSubject() { 203 return adminSubject; 204 } 205 public void setAdminSubject(String adminSubject) { 206 this.adminSubject = adminSubject; 207 } 208 public String getEndUserMessage() { 209 return endUserMessage; 210 } 211 public void setEndUserMessage(String endUserMessage) { 212 this.endUserMessage = endUserMessage; 213 } 214 public String getEndUserSubject() { 215 return endUserSubject; 216 } 217 public void setEndUserSubject(String endUserSubject) { 218 this.endUserSubject = endUserSubject; 219 } 220 public List getSelectedCANamesToCheck() { 221 return selectedCANamesToCheck; 222 } 223 public void setSelectedCANamesToCheck(List selectedCANamesToCheck) { 224 this.selectedCANamesToCheck = selectedCANamesToCheck; 225 } 226 public String getTimeValue() { 227 return timeValue; 228 } 229 public void setTimeValue(String timeValue) { 230 this.timeValue = timeValue; 231 } 232 public boolean isUseAdminNotifications() { 233 return useAdminNotifications; 234 } 235 public void setUseAdminNotifications(boolean useAdminNotifications) { 236 this.useAdminNotifications = useAdminNotifications; 237 } 238 public boolean isUseEndUserNotifications() { 239 return useEndUserNotifications; 240 } 241 public void setUseEndUserNotifications(boolean useEndUserNotifications) { 242 this.useEndUserNotifications = useEndUserNotifications; 243 } 244 245 } 246 | Popular Tags |