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 + -
显示快捷键?