protected void usage() { getPrintStream() .println( "Command used to add or edit userdata, if user exist will the data be overwritten."); getPrintStream() .println( "Usage : edituser <username> <password|null> <clearpwd (true|false)> <subjectdn> <subjectaltname or NULL> <email or NULL> <caname> <type> <token> <status> <endentityprofilename> <certificateprofilename> <issueralias or NULL (optional)> <starttime or NULL (optional)> <endtime (starttime)>\n\n"); getPrintStream().println("DN is of form \"C=SE, O=MyOrg, OU=MyOrgUnit, CN=MyName\" etc."); getPrintStream() .println( "SubjectAltName is of form \"rfc822Name=<email>, dNSName=<host name>, uri=<http://host.com/>, ipaddress=<address>, guid=<globally unique id>\""); getPrintStream() .println("Type (mask): INVALID=0; END-USER=1; KEYRECOVERABLE=128; SENDNOTIFICATION=256"); getPrintStream().println("Existing tokens: USERGENERATED, P12, JKS, PEM"); getPrintStream() .println( "Existing statuses (new users will always be set as NEW) : NEW, INPROCESS, FAILED, HISTORICAL"); getPrintStream() .println( "Start time and end time is of form \"May 26, 2009 9:52 AM\" or \"days:hours:minutes\""); getPrintStream().println(); ParseUserData.printCliHelp(getPrintStream()); }
/** * Runs the command * * @throws IllegalAdminCommandException Error in command args * @throws ErrorAdminCommandException Error running command */ public void execute() throws IllegalAdminCommandException, ErrorAdminCommandException { final UserDataVOWS userdata = new UserDataVOWS(); final String[] myArgs = ParseUserData.getDataFromArgs(this.args, userdata, getPrintStream()); if (myArgs.length < NR_OF_MANDATORY_ARGS || myArgs.length > MAX_NR_OF_ARGS) { usage(); System.exit(-1); // NOPMD, this is not a JEE app } try { userdata.setUsername(myArgs[ARG_USERNAME]); String pwd = myArgs[ARG_PASSWORD]; if (StringUtils.equalsIgnoreCase("null", pwd)) { pwd = null; } userdata.setPassword(pwd); userdata.setClearPwd(myArgs[ARG_CLEARPWD].equalsIgnoreCase("true")); userdata.setSubjectDN(myArgs[ARG_SUBJECTDN]); if (!myArgs[ARG_SUBJECTALTNAME].equalsIgnoreCase("NULL")) { userdata.setSubjectAltName(myArgs[ARG_SUBJECTALTNAME]); } if (!myArgs[ARG_EMAIL].equalsIgnoreCase("NULL")) { userdata.setEmail(myArgs[ARG_EMAIL]); } userdata.setCaName(myArgs[ARG_CA]); userdata.setTokenType(myArgs[ARG_TOKEN]); userdata.setStatus(getStatus(myArgs[ARG_STATUS])); userdata.setEndEntityProfileName(myArgs[ARG_ENDENTITYPROFILE]); userdata.setCertificateProfileName(myArgs[ARG_CERTIFICATEPROFILE]); EndEntityType type = new EndEntityType(EndEntityTypes.getTypesFromHexCode(Integer.parseInt(myArgs[ARG_TYPE]))); if (type.contains(EndEntityTypes.SENDNOTIFICATION)) { userdata.setSendNotification(true); } if (type.contains(EndEntityTypes.KEYRECOVERABLE)) { userdata.setKeyRecoverable(true); } if (myArgs.length > ARG_ISSUERALIAS) { if (!myArgs[ARG_ISSUERALIAS].equalsIgnoreCase("NULL")) { userdata.setHardTokenIssuerName(myArgs[ARG_ISSUERALIAS]); } } if (myArgs.length > ARG_STARTTIME) { if (!myArgs[ARG_STARTTIME].equalsIgnoreCase("NULL")) { userdata.setStartTime(myArgs[ARG_STARTTIME]); } } if (myArgs.length > ARG_ENDTIME) { if (!myArgs[ARG_ENDTIME].equalsIgnoreCase("NULL")) { userdata.setEndTime(myArgs[ARG_ENDTIME]); } } getPrintStream().println("Trying to add user:"******"Username: "******"Subject DN: " + userdata.getSubjectDN()); getPrintStream().println("Subject Altname: " + userdata.getSubjectAltName()); getPrintStream().println("Email: " + userdata.getEmail()); getPrintStream().println("CA Name: " + userdata.getCaName()); getPrintStream().println("Type: " + type.getHexValue()); getPrintStream().println("Token: " + userdata.getTokenType()); getPrintStream().println("Status: " + userdata.getStatus()); getPrintStream().println("End entity profile: " + userdata.getEndEntityProfileName()); getPrintStream().println("Certificate profile: " + userdata.getCertificateProfileName()); if (userdata.getHardTokenIssuerName() == null) { getPrintStream().println("Hard Token Issuer Alias: NONE"); } else { getPrintStream().println("Hard Token Issuer Alias: " + userdata.getHardTokenIssuerName()); } if (userdata.getStartTime() == null) { getPrintStream().println("Start time: NONE"); } else { getPrintStream().println("Start time: " + userdata.getStartTime()); } if (userdata.getEndTime() == null) { getPrintStream().println("End time: NONE"); } else { getPrintStream().println("End time: " + userdata.getEndTime()); } { final List<ExtendedInformationWS> eil = userdata.getExtendedInformation(); if (eil != null) { getPrintStream().println("Extended information:"); for (ExtendedInformationWS ei : eil) { getPrintStream().println(" '" + ei.getName() + "' = '" + ei.getValue() + "'"); } } } { final BigInteger bi = userdata.getCertificateSerialNumber(); if (bi != null) { getPrintStream().println(ParseUserData.certificateSerialNumber + "=0x" + bi.toString(16)); } } try { getEjbcaRAWS().editUser(userdata); getPrintStream().println("User '" + userdata.getUsername() + "' has been added/edited."); getPrintStream().println(); } catch (AuthorizationDeniedException_Exception e) { getPrintStream().println("Error : " + e.getMessage()); } catch (UserDoesntFullfillEndEntityProfile_Exception e) { getPrintStream() .println( "Error : Given userdata doesn't fullfill end entity profile. : " + e.getMessage()); } } catch (Exception e) { throw new ErrorAdminCommandException(e); } }