/** * Services a Commandline Request. * * @param rc Request Context. * @throw CLIException if the request cannot serviced. */ @Override public void handleRequest(RequestContext rc) throws CLIException { super.handleRequest(rc); String realm = getStringOptionValue(IArgument.REALM_NAME); List<String> appNames = (List) rc.getOption(PARAM_APPL_NAMES); String[] param = {realm}; writeLog(LogWriter.LOG_ACCESS, Level.INFO, "ATTEMPT_DELETE_APPLICATIONS", param); Subject adminSubject = getAdminSubject(); try { for (String a : appNames) { ApplicationManager.deleteApplication(adminSubject, "/", a); } IOutput writer = getOutputWriter(); writer.printlnMessage( MessageFormat.format( getResourceString("delete-applications-succeeded"), (Object[]) param)); writeLog(LogWriter.LOG_ACCESS, Level.INFO, "SUCCEEDED_DELETE_APPLICATIONS", param); } catch (EntitlementException e) { String[] params = {realm, e.getMessage()}; writeLog(LogWriter.LOG_ACCESS, Level.INFO, "FAILED_DELETE_APPLICATIONS", params); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } }
/** * Services a Commandline Request. * * @param rc Request Context. * @throw CLIException if the request cannot serviced. */ public void handleRequest(RequestContext rc) throws CLIException { super.handleRequest(rc); ldapLogin(); SSOToken adminSSOToken = getAdminSSOToken(); IOutput outputWriter = getOutputWriter(); String realm = getStringOptionValue(IArgument.REALM_NAME); String agentGroupName = getStringOptionValue(IArgument.AGENT_GROUP_NAME); List agentNames = rc.getOption(IArgument.AGENT_NAMES); String[] params = {realm, agentGroupName, ""}; String agentName = ""; try { AMIdentity amidGroup = new AMIdentity(adminSSOToken, agentGroupName, IdType.AGENTGROUP, realm, null); for (Iterator i = agentNames.iterator(); i.hasNext(); ) { agentName = (String) i.next(); params[2] = agentName; writeLog(LogWriter.LOG_ACCESS, Level.INFO, "ATTEMPT_ADD_AGENT_TO_GROUP", params); AMIdentity amid = new AMIdentity(adminSSOToken, agentName, IdType.AGENTONLY, realm, null); AgentConfiguration.AddAgentToGroup(amidGroup, amid); writeLog(LogWriter.LOG_ACCESS, Level.INFO, "SUCCEED_ADD_AGENT_TO_GROUP", params); } if (agentNames.size() > 1) { outputWriter.printlnMessage(getResourceString("add-agent-to-group-succeeded-pural")); } else { outputWriter.printlnMessage(getResourceString("add-agent-to-group-succeeded")); } } catch (IdRepoException e) { String[] args = {realm, agentGroupName, agentName, e.getMessage()}; debugError("AddAgentsToGroup.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_ADD_AGENT_TO_GROUP", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } catch (ConfigurationException e) { String[] args = {realm, agentGroupName, agentName, e.getMessage()}; debugError("AddAgentsToGroup.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_ADD_AGENT_TO_GROUP", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } catch (SSOException e) { String[] args = {realm, agentGroupName, agentName, e.getMessage()}; debugError("AddAgentsToGroup.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_ADD_AGENT_TO_GROUP", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } }
/** * Services a Commandline Request. * * @param rc Request Context. * @throw CLIException if the request cannot serviced. */ public void handleRequest(RequestContext rc) throws CLIException { super.handleRequest(rc); SSOToken adminSSOToken = getAdminSSOToken(); IOutput outputWriter = getOutputWriter(); String realm = getStringOptionValue(IArgument.REALM_NAME); String idName = getStringOptionValue(ARGUMENT_ID_NAME); String type = getStringOptionValue(ARGUMENT_ID_TYPE); String serviceName = getStringOptionValue(IArgument.SERVICE_NAME); IdType idType = convert2IdType(type); String datafile = getStringOptionValue(IArgument.DATA_FILE); List attrValues = rc.getOption(IArgument.ATTRIBUTE_VALUES); if ((datafile == null) && (attrValues == null)) { throw new CLIException( getResourceString("missing-attributevalues"), ExitCodes.INCORRECT_OPTION, rc.getSubCommand().getName()); } Map attributeValues = AttributeValues.parse(getCommandManager(), datafile, attrValues); String[] params = {realm, type, idName, serviceName}; try { writeLog(LogWriter.LOG_ACCESS, Level.INFO, "ATTEMPT_IDREPO_ASSIGN_SERVICE", params); AMIdentity amid = new AMIdentity(adminSSOToken, idName, idType, realm, null); amid.assignService(serviceName, attributeValues); outputWriter.printlnMessage( MessageFormat.format( getResourceString("idrepo-assign-service-succeed"), (Object[]) params)); writeLog(LogWriter.LOG_ACCESS, Level.INFO, "SUCCEED_IDREPO_ASSIGN_SERVICE", params); } catch (IdRepoException e) { String[] args = {realm, type, idName, serviceName, e.getMessage()}; debugError("AssignService.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_IDREPO_ASSIGN_SERVICE", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } catch (SSOException e) { String[] args = {realm, type, idName, serviceName, e.getMessage()}; debugError("AssignService.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_IDREPO_ASSIGN_SERVICE", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } }
/** * Services a Commandline Request. * * @param rc Request Context. * @throws CLIException if the request cannot serviced. */ public void handleRequest(RequestContext rc) throws CLIException { super.handleRequest(rc); ldapLogin(); String serviceName = getStringOptionValue(IArgument.SERVICE_NAME); String subConfigName = getStringOptionValue(IArgument.SUB_CONFIGURATION_NAME); String realmName = getStringOptionValue(IArgument.REALM_NAME); String subConfigId = getStringOptionValue(IArgument.SUB_CONFIGURATION_ID); String datafile = getStringOptionValue(IArgument.DATA_FILE); List attrValues = rc.getOption(IArgument.ATTRIBUTE_VALUES); if ((datafile == null) && (attrValues == null)) { throw new CLIException( getResourceString("missing-attributevalues"), ExitCodes.INCORRECT_OPTION, rc.getSubCommand().getName()); } int priority = 0; String strPriority = getStringOptionValue(OPTION_PRIORITY); if ((strPriority != null) && (strPriority.length() > 0)) { try { priority = Integer.parseInt(strPriority); } catch (NumberFormatException ex) { throw new CLIException( getResourceString("add-sub-configuration-priority-no-integer"), ExitCodes.INVALID_OPTION_VALUE); } } Map<String, Set<String>> attributeValues = AttributeValues.parse(getCommandManager(), datafile, attrValues); attributeValues = processFileAttributes(attributeValues); if ((realmName == null) || (realmName.length() == 0)) { addSubConfigToRoot(serviceName, subConfigName, subConfigId, attributeValues, priority); } else { addSubConfigToRealm( realmName, serviceName, subConfigName, subConfigId, attributeValues, priority); } }
/** * Services a Commandline Request. * * @param rc Request Context. * @throws CLIException if the request cannot serviced. */ public void handleRequest(RequestContext rc) throws CLIException { super.handleRequest(rc); SSOToken adminSSOToken = getAdminSSOToken(); IOutput outputWriter = getOutputWriter(); String realm = getStringOptionValue(IArgument.REALM_NAME); String idName = getStringOptionValue(ARGUMENT_ID_NAME); String type = getStringOptionValue(ARGUMENT_ID_TYPE); List privileges = (List) rc.getOption(IArgument.PRIVILEGES); IdType idType = convert2IdType(type); String[] params = {realm, type, idName}; try { writeLog(LogWriter.LOG_ACCESS, Level.INFO, "ATTEMPT_IDREPO_ADD_PRIVILEGES", params); DelegationManager mgr = new DelegationManager(adminSSOToken, realm); Set privilegeObjects = mgr.getPrivileges(); AMIdentity amid = new AMIdentity(adminSSOToken, idName, idType, realm, null); if (!amid.isExists()) { Object[] p = {idName, type}; throw new CLIException( MessageFormat.format(getResourceString("idrepo-add-privileges-do-not-exist"), p), ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } String uid = amid.getUniversalId(); DelegationPrivilege newDp = null; for (Iterator i = privileges.iterator(); i.hasNext(); ) { String name = (String) i.next(); DelegationPrivilege dp = getDelegationPrivilege(name, privilegeObjects); if (dp != null) { Set subjects = dp.getSubjects(); if (!subjects.contains(uid)) { subjects.add(uid); newDp = new DelegationPrivilege(name, subjects, realm); mgr.addPrivilege(newDp); } else { String[] args = {idName, name}; String msg = MessageFormat.format( getResourceString("delegation-already-has-privilege"), (Object[]) args); throw new CLIException(msg, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } } else { Set subjects = new HashSet(2); subjects.add(uid); newDp = new DelegationPrivilege(name, subjects, realm); mgr.addPrivilege(newDp); } } outputWriter.printlnMessage( MessageFormat.format( getResourceString("idrepo-add-privileges-succeed"), (Object[]) params)); writeLog(LogWriter.LOG_ACCESS, Level.INFO, "SUCCEED_IDREPO_ADD_PRIVILEGES", params); } catch (IdRepoException e) { String[] args = {realm, type, idName, e.getMessage()}; debugError("AddPrivileges.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_IDREPO_ADD_PRIVILEGES", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } catch (DelegationException e) { String[] args = {realm, type, idName, e.getMessage()}; debugError("AddPrivileges.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_IDREPO_ADD_PRIVILEGES", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } catch (SSOException e) { String[] args = {realm, type, idName, e.getMessage()}; debugError("AddPrivileges.handleRequest", e); writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_IDREPO_ADD_PRIVILEGES", args); throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED); } }