use of com.sun.identity.idm.AMIdentityRepository in project OpenAM by OpenRock.
the class EntitiesModelImpl method canAssignService.
/**
* Returns true if services can be assigned to this entity type.
*
* @param realmName Name of Realm.
* @param idType Type of Entity.
* @return true if services can be assigned to this entity type.
*/
public boolean canAssignService(String realmName, String idType) {
boolean can = false;
try {
AMIdentityRepository repo = new AMIdentityRepository(adminSSOToken, realmName);
Set allowedOperations = repo.getAllowedIdOperations(IdUtils.getType(idType));
can = allowedOperations.contains(IdOperation.SERVICE);
} catch (IdRepoException e) {
debug.warning("EntitiesModelImpl.canAssignService", e);
} catch (SSOException e) {
debug.warning("EntitiesModelImpl.canAssignService", e);
}
return can;
}
use of com.sun.identity.idm.AMIdentityRepository in project OpenAM by OpenRock.
the class CreateAgent method handleRequest.
/**
* 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();
SSOToken adminSSOToken = getAdminSSOToken();
String realm = getStringOptionValue(IArgument.REALM_NAME);
String agentName = getStringOptionValue(IArgument.AGENT_NAME);
String agentType = getStringOptionValue(IArgument.AGENT_TYPE);
String datafile = getStringOptionValue(IArgument.DATA_FILE);
List attrValues = rc.getOption(IArgument.ATTRIBUTE_VALUES);
Map attributeValues = Collections.EMPTY_MAP;
if ((datafile != null) || (attrValues != null)) {
attributeValues = AttributeValues.parse(getCommandManager(), datafile, attrValues);
}
if ((attributeValues == null) || attributeValues.isEmpty()) {
throw new CLIException(getResourceString("agent-creation-pwd-needed"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
String serverURL = getStringOptionValue(IArgument.SERVER_URL);
String agentURL = getStringOptionValue(AGENT_URL);
boolean webJ2EEAgent = agentType.equals("WebAgent") || agentType.equals("J2EEAgent");
if (!webJ2EEAgent) {
if (serverURL != null) {
throw new CLIException(getResourceString("does-not-support-server-url"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
if (agentURL != null) {
throw new CLIException(getResourceString("does-not-support-agent-url"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
} else {
if (agentURL != null && serverURL == null) {
throw new CLIException(getResourceString("server-url-missing"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
if (serverURL != null && agentURL == null) {
throw new CLIException(getResourceString("agent-url-missing"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
if (serverURL == null && agentURL == null && attributeValues.size() == 1) {
//only the password is provided
throw new CLIException(getResourceString("missing-urls"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
}
boolean hasPassword = false;
for (Iterator i = attributeValues.keySet().iterator(); (i.hasNext() && !hasPassword); ) {
String k = (String) i.next();
if (k.equals(CLIConstants.ATTR_SCHEMA_AGENT_PWD)) {
Set values = (Set) attributeValues.get(k);
if ((values != null) && !values.isEmpty()) {
String pwd = (String) values.iterator().next();
hasPassword = (pwd.trim().length() > 0);
}
}
}
if (!hasPassword) {
throw new CLIException(getResourceString("agent-creation-pwd-needed"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
String[] params = { realm, agentType, agentName };
writeLog(LogWriter.LOG_ACCESS, Level.INFO, "ATTEMPT_CREATE_AGENT", params);
try {
AMIdentityRepository amir = new AMIdentityRepository(adminSSOToken, realm);
Set set = amir.getAllowedIdOperations(IdType.AGENTONLY);
if (!set.contains(IdOperation.CREATE)) {
String[] args = { realm };
throw new CLIException(MessageFormat.format(getResourceString("does-not-support-agent-creation"), (Object[]) args), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
if (webJ2EEAgent) {
if (serverURL != null) {
FQDNUrl fqdnServerURL = null;
try {
fqdnServerURL = new FQDNUrl(serverURL);
} catch (MalformedURLException e) {
throw new CLIException(getResourceString("server-url-invalid"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
FQDNUrl fqdnAgentURL = null;
try {
fqdnAgentURL = new FQDNUrl(agentURL);
} catch (MalformedURLException e) {
throw new CLIException(getResourceString("agent-url-invalid"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
Map map = AgentConfiguration.getDefaultValues(agentType, false);
map.putAll(attributeValues);
AgentConfiguration.tagswapAttributeValues(map, agentType, fqdnServerURL, fqdnAgentURL);
// Remove any default values that have not been replaced by values
// supplied when calling create agent. These are in the form of
// propertyname[n] where n is a value starting from 0
AgentConfiguration.removeDefaultDuplicates(attributeValues, map);
AgentConfiguration.createAgent(adminSSOToken, realm, agentName, agentType, map);
} else {
AgentConfiguration.createAgent(adminSSOToken, realm, agentName, agentType, attributeValues);
}
} else {
AgentConfiguration.createAgent(adminSSOToken, realm, agentName, agentType, attributeValues);
}
getOutputWriter().printlnMessage(MessageFormat.format(getResourceString("create-agent-succeeded"), (Object[]) params));
writeLog(LogWriter.LOG_ACCESS, Level.INFO, "SUCCEED_CREATE_AGENT", params);
} catch (ConfigurationException e) {
String[] args = { realm, agentType, agentName, e.getMessage() };
debugError("CreateAgent.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
} catch (IdRepoException e) {
String[] args = { realm, agentType, agentName, e.getMessage() };
debugError("CreateAgent.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
} catch (SMSException e) {
String[] args = { realm, agentType, agentName, e.getMessage() };
debugError("CreateAgent.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
} catch (SSOException e) {
String[] args = { realm, agentType, agentName, e.getMessage() };
debugError("CreateAgent.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
}
use of com.sun.identity.idm.AMIdentityRepository in project OpenAM by OpenRock.
the class CreateAgentGroup method handleRequest.
/**
* 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();
SSOToken adminSSOToken = getAdminSSOToken();
String realm = getStringOptionValue(IArgument.REALM_NAME);
String groupName = getStringOptionValue(IArgument.AGENT_GROUP_NAME);
String agentType = getStringOptionValue(IArgument.AGENT_TYPE);
String datafile = getStringOptionValue(IArgument.DATA_FILE);
List attrValues = rc.getOption(IArgument.ATTRIBUTE_VALUES);
Map attributeValues = Collections.EMPTY_MAP;
if ((datafile != null) || (attrValues != null)) {
attributeValues = AttributeValues.parse(getCommandManager(), datafile, attrValues);
}
String serverURL = getStringOptionValue(IArgument.SERVER_URL);
boolean webJ2EEAgent = agentType.equals("WebAgent") || agentType.equals("J2EEAgent");
if (!webJ2EEAgent && (serverURL != null)) {
throw new CLIException(getResourceString("does-not-support-server-url"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
String[] params = { realm, agentType, groupName };
writeLog(LogWriter.LOG_ACCESS, Level.INFO, "ATTEMPT_CREATE_AGENT_GROUP", params);
try {
AMIdentityRepository amir = new AMIdentityRepository(adminSSOToken, realm);
Set set = amir.getAllowedIdOperations(IdType.AGENTGROUP);
if (!set.contains(IdOperation.CREATE)) {
String[] args = { realm };
throw new CLIException(MessageFormat.format(getResourceString("does-not-support-agent-group-creation"), (Object[]) args), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
if (webJ2EEAgent) {
FQDNUrl fqdnServerURL = null;
try {
if (serverURL != null) {
fqdnServerURL = new FQDNUrl(serverURL);
}
} catch (MalformedURLException e) {
throw new CLIException(getResourceString("server-url-invalid"), ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
if (fqdnServerURL != null) {
Map map = AgentConfiguration.getDefaultValues(agentType, true);
map.putAll(attributeValues);
AgentConfiguration.tagswapAttributeValues(map, agentType, fqdnServerURL, null);
AgentConfiguration.createAgentGroup(adminSSOToken, realm, groupName, agentType, map);
} else {
AgentConfiguration.createAgentGroup(adminSSOToken, realm, groupName, agentType, attributeValues);
}
} else {
AgentConfiguration.createAgentGroup(adminSSOToken, realm, groupName, agentType, attributeValues);
}
getOutputWriter().printlnMessage(MessageFormat.format(getResourceString("create-agent-group-succeeded"), (Object[]) params));
writeLog(LogWriter.LOG_ACCESS, Level.INFO, "SUCCEED_CREATE_AGENT_GROUP", params);
} catch (ConfigurationException e) {
String[] args = { realm, agentType, groupName, e.getMessage() };
debugError("CreateAgentGroup.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT_GROUP", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
} catch (SMSException e) {
String[] args = { realm, agentType, groupName, e.getMessage() };
debugError("CreateAgentGroup.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT_GROUP", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
} catch (IdRepoException e) {
String[] args = { realm, agentType, groupName, e.getMessage() };
debugError("CreateAgentGroup.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT_GROUP", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
} catch (SSOException e) {
String[] args = { realm, agentType, groupName, e.getMessage() };
debugError("CreateAgentGroup.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_CREATE_AGENT_GROUP", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
}
use of com.sun.identity.idm.AMIdentityRepository in project OpenAM by OpenRock.
the class ListAgentGroups method handleRequest.
/**
* 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();
SSOToken adminSSOToken = getAdminSSOToken();
IOutput outputWriter = getOutputWriter();
String realm = getStringOptionValue(IArgument.REALM_NAME);
String patternType = getStringOptionValue(IArgument.AGENT_TYPE);
String filter = getStringOptionValue(IArgument.FILTER);
if (patternType == null) {
patternType = "";
}
if ((filter == null) || (filter.length() == 0)) {
filter = "*";
}
String[] params = { realm, patternType, filter };
writeLog(LogWriter.LOG_ACCESS, Level.INFO, "ATTEMPT_LIST_AGENT_GROUPS", params);
try {
AMIdentityRepository amir = new AMIdentityRepository(adminSSOToken, realm);
IdSearchResults isr = amir.searchIdentities(IdType.AGENTGROUP, filter, new IdSearchControl());
Set results = isr.getSearchResults();
if ((results != null) && !results.isEmpty()) {
for (Iterator i = results.iterator(); i.hasNext(); ) {
AMIdentity amid = (AMIdentity) i.next();
if (!matchType(amid, patternType)) {
i.remove();
}
}
}
if ((results != null) && !results.isEmpty()) {
for (Iterator i = results.iterator(); i.hasNext(); ) {
AMIdentity amid = (AMIdentity) i.next();
Object[] args = { amid.getName(), amid.getUniversalId() };
outputWriter.printlnMessage(MessageFormat.format(getResourceString("format-search-agent-group-results"), args));
}
} else {
outputWriter.printlnMessage(getResourceString("search-agent-group-no-entries"));
}
writeLog(LogWriter.LOG_ACCESS, Level.INFO, "SUCCEED_LIST_AGENT_GROUPS", params);
} catch (IdRepoException e) {
String[] args = { realm, patternType, filter, e.getMessage() };
debugError("ListAgentGroups.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_LIST_AGENT_GROUPS", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
} catch (SSOException e) {
String[] args = { realm, patternType, filter, e.getMessage() };
debugError("ListAgentGroups.handleRequest", e);
writeLog(LogWriter.LOG_ERROR, Level.INFO, "FAILED_LIST_AGENT_GROUPS", args);
throw new CLIException(e, ExitCodes.REQUEST_CANNOT_BE_PROCESSED);
}
}
use of com.sun.identity.idm.AMIdentityRepository in project OpenAM by OpenRock.
the class RealmGetAssignableServices method getAssignableDynamicServiceNames.
private Set getAssignableDynamicServiceNames(SSOToken adminSSOToken, String realm) throws SMSException, IdRepoException, SSOException {
AMIdentityRepository repo = new AMIdentityRepository(adminSSOToken, realm);
AMIdentity ai = repo.getRealmIdentity();
return ai.getAssignableServices();
}
Aggregations