endentityprofile.java
来自「一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考」· Java 代码 · 共 1,469 行 · 第 1/5 页
JAVA
1,469 行
setValue(parameter,size,""); setRequired(parameter,size,false); setUse(parameter,size,true); setModifyable(parameter,size,true); String param = getParameter(parameter); ArrayList dns = DnComponents.getDnProfileFields(); if(dns.contains(param)){ ArrayList fieldorder = (ArrayList) data.get(SUBJECTDNFIELDORDER); fieldorder.add(new Integer((NUMBERBOUNDRARY*parameter) + size)); Collections.sort(fieldorder); } ArrayList altNames = DnComponents.getAltNameFields(); if(altNames.contains(param)) { ArrayList fieldorder = (ArrayList) data.get(SUBJECTALTNAMEFIELDORDER); fieldorder.add(new Integer((NUMBERBOUNDRARY*parameter) + size)); } ArrayList dirAttrs = DnComponents.getDirAttrFields(); if(dirAttrs.contains(param)){ ArrayList fieldorder = (ArrayList) data.get(SUBJECTDIRATTRFIELDORDER); fieldorder.add(new Integer((NUMBERBOUNDRARY*parameter) + size)); } incrementFieldnumber(parameter); } public void removeField(String parameter, int number){ removeField(getParameterNumber(parameter), number); } /** * Function that removes a field from the end entity profile. * * @param parameter is the field to remove. * @param number is the number of field. */ public void removeField(int parameter, int number){ // Remove field and move all fileds above. int size = getNumberOfField(parameter); if(size>0){ for(int n = number; n < size-1; n++){ setValue(parameter,n,getValue(parameter,n+1)); setRequired(parameter,n,isRequired(parameter,n+1)); setUse(parameter,n,getUse(parameter,n+1)); setModifyable(parameter,n,isModifyable(parameter,n+1)); } String param = getParameter(parameter); // Remove from order list. ArrayList dns = DnComponents.getDnProfileFields(); if(dns.contains(param)){ ArrayList fieldorder = (ArrayList) data.get(SUBJECTDNFIELDORDER); int value = (NUMBERBOUNDRARY*parameter) + number; for(int i=0; i < fieldorder.size(); i++){ if( value == ((Integer) fieldorder.get(i)).intValue()){ fieldorder.remove(i); break; } } } ArrayList altNames = DnComponents.getAltNameFields(); if(altNames.contains(param)) { ArrayList fieldorder = (ArrayList) data.get(SUBJECTALTNAMEFIELDORDER); int value = (NUMBERBOUNDRARY*parameter) + number; for(int i=0; i < fieldorder.size(); i++){ if( value == ((Integer) fieldorder.get(i)).intValue()){ fieldorder.remove(i); break; } } } ArrayList dirAttrs = DnComponents.getDirAttrFields(); if(dirAttrs.contains(param)){ ArrayList fieldorder = (ArrayList) data.get(SUBJECTDIRATTRFIELDORDER); int value = (NUMBERBOUNDRARY*parameter) + number; for(int i=0; i < fieldorder.size(); i++){ if( value == ((Integer) fieldorder.get(i)).intValue()){ fieldorder.remove(i); break; } } } data.remove(new Integer((VALUE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); data.remove(new Integer((USE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); data.remove(new Integer((ISREQUIRED*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); data.remove(new Integer((MODIFYABLE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); decrementFieldnumber(parameter); } } /** * Function that returns the number of one kind of field. * */ public int getNumberOfField(String parameter){ return getNumberOfField(getParameterNumber(parameter)); } public int getNumberOfField(int parameter){ ArrayList arr = (ArrayList)data.get(NUMBERARRAY); // This is an automatic upgrade function, if we have dynamically added new fields if (parameter >= arr.size()) { String msg = intres.getLocalizedMessage("ra.eeprofileaddfield", new Integer(parameter)); log.info(msg); for (int i = arr.size(); i <= parameter; i++) { arr.add(new Integer(0)); } data.put(NUMBERARRAY,arr); } return ((Integer) arr.get(parameter)).intValue(); } public void setValue(int parameter, int number, String value) { if(value !=null){ value=value.trim(); data.put(new Integer((VALUE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter), value); }else{ data.put(new Integer((VALUE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter), ""); } } public void setValue(String parameter, int number, String value) { setValue(getParameterNumber(parameter), number, value); } public void setUse(int parameter, int number, boolean use){ data.put(new Integer((USE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter), Boolean.valueOf(use)); } public void setUse(String parameter, int number, boolean use){ setUse(getParameterNumber(parameter), number, use); } public void setRequired(int parameter, int number, boolean isrequired) { data.put(new Integer((ISREQUIRED*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter), Boolean.valueOf(isrequired)); } public void setRequired(String parameter, int number, boolean isrequired) { setRequired(getParameterNumber(parameter), number, isrequired); } public void setModifyable(int parameter, int number, boolean changeable) { data.put(new Integer((MODIFYABLE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter), Boolean.valueOf(changeable)); } public void setModifyable(String parameter, int number, boolean changeable) { setModifyable(getParameterNumber(parameter), number, changeable); } public String getValue(int parameter, int number) { String returnval = (String) data.get(new Integer((VALUE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); if(returnval != null) return returnval; return ""; } public String getValue(String parameter, int number) { return getValue(getParameterNumber(parameter), number); } public boolean getUse(int parameter, int number){ Boolean returnval = (Boolean) data.get(new Integer((USE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); if(returnval != null) return returnval.booleanValue(); return false; } public boolean getUse(String parameter, int number){ return getUse(getParameterNumber(parameter), number); } public boolean isRequired(int parameter, int number) { Boolean returnval = (Boolean) data.get(new Integer((ISREQUIRED*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); if(returnval != null) return returnval.booleanValue(); return false; } public boolean isRequired(String parameter, int number) { return isRequired(getParameterNumber(parameter), number); } public boolean isModifyable(int parameter, int number){ Boolean returnval = (Boolean) data.get(new Integer((MODIFYABLE*FIELDBOUNDRARY) + (NUMBERBOUNDRARY*number) + parameter)); if(returnval != null) return returnval.booleanValue(); return false; } public boolean isModifyable(String parameter, int number) { return isModifyable(getParameterNumber(parameter), number); } public int getSubjectDNFieldOrderLength(){ return ((ArrayList) data.get(SUBJECTDNFIELDORDER)).size(); } public int getSubjectAltNameFieldOrderLength(){ return ((ArrayList) data.get(SUBJECTALTNAMEFIELDORDER)).size(); } public int getSubjectDirAttrFieldOrderLength(){ return ((ArrayList) data.get(SUBJECTDIRATTRFIELDORDER)).size(); } /** returns two int : the first is the DN field which is a constant in DN field extractor, * the second is in which order the attribute is, 0 is first OU and 1 can mean second OU (if OU is specified in the first value). * */ public int[] getSubjectDNFieldsInOrder(int index){ int[] returnval = new int[2]; ArrayList fieldorder = (ArrayList) data.get(SUBJECTDNFIELDORDER); returnval[NUMBER] = ((Integer) fieldorder.get(index)).intValue() % NUMBERBOUNDRARY; returnval[FIELDTYPE] = ((Integer) fieldorder.get(index)).intValue() / NUMBERBOUNDRARY; return returnval; } public int[] getSubjectAltNameFieldsInOrder(int index){ int[] returnval = new int[2]; ArrayList fieldorder = (ArrayList) data.get(SUBJECTALTNAMEFIELDORDER); returnval[NUMBER] = ((Integer) fieldorder.get(index)).intValue() % NUMBERBOUNDRARY; returnval[FIELDTYPE] = ((Integer) fieldorder.get(index)).intValue() / NUMBERBOUNDRARY; return returnval; } public int[] getSubjectDirAttrFieldsInOrder(int index){ int[] returnval = new int[2]; ArrayList fieldorder = (ArrayList) data.get(SUBJECTDIRATTRFIELDORDER); returnval[NUMBER] = ((Integer) fieldorder.get(index)).intValue() % NUMBERBOUNDRARY; returnval[FIELDTYPE] = ((Integer) fieldorder.get(index)).intValue() / NUMBERBOUNDRARY; return returnval; } public Collection getAvailableCAs(){ ArrayList availablecaids = new ArrayList(); availablecaids.addAll(Arrays.asList(getValue(AVAILCAS,0).split(SPLITCHAR))); return availablecaids; } public boolean useAutoGeneratedPasswd(){ return !this.getUse(EndEntityProfile.PASSWORD,0); } public String getAutoGeneratedPasswd(){ return PasswordGeneratorFactory.getInstance(PasswordGeneratorFactory.PASSWORDTYPE_LETTERSANDDIGITS).getNewPassword(6,8); } public String getNotificationSender(){ if(data.get(NOTIFICATIONSENDER) == null) return ""; return (String) data.get(NOTIFICATIONSENDER); } public void setNotificationSender(String sender){ data.put(NOTIFICATIONSENDER, sender); } public String getNotificationSubject(){ if(data.get(NOTIFICATIONSUBJECT) == null) return ""; return (String) data.get(NOTIFICATIONSUBJECT); } public void setNotificationSubject(String subject){ data.put(NOTIFICATIONSUBJECT, subject); } public String getNotificationMessage(){ if(data.get(NOTIFICATIONMESSAGE) == null) return ""; return (String) data.get(NOTIFICATIONMESSAGE); } public void setNotificationMessage(String message){ data.put(NOTIFICATIONMESSAGE, message); } /** * @return indicationg if the keyreccovered certificate should be reused or not. */ public boolean getReUseKeyRevoceredCertificate(){ if(data.get(REUSECERTIFICATE) == null){ return false; } return ((Boolean) data.get(REUSECERTIFICATE)).booleanValue(); } public void setReUseKeyRevoceredCertificate(boolean reuse){ data.put(REUSECERTIFICATE, new Boolean(reuse)); } /** * @return indicationg if the profile checks should be reversed or not. * default is false. */ public boolean getReverseFieldChecks(){
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?