Search in sources :

Example 6 with FQDNUrl

use of com.sun.identity.shared.FQDNUrl in project OpenAM by OpenRock.

the class ServerAddViewBean method handleButton1Request.

/**
     * Handles create server request.
     *
     * @param event Request invocation event
     */
public void handleButton1Request(RequestInvocationEvent event) throws ModelControlException {
    ServerSiteModel model = (ServerSiteModel) getModel();
    AMPropertySheet ps = (AMPropertySheet) getChild(PROPERTY_ATTRIBUTE);
    String name = (String) getDisplayFieldValue(TF_NAME);
    name = name.trim();
    if (name.length() > 0) {
        try {
            FQDNUrl test = new FQDNUrl(name);
            if ((!test.isFullyQualified()) || (test.getPort().length() == 0) || (test.getURI().length() == 0)) {
                setInlineAlertMessage(CCAlert.TYPE_ERROR, "message.error", "serverconfig.create.site.invalid.url");
                forwardTo();
            } else {
                model.createServer(name);
                backTrail();
                ServerSiteViewBean vb = (ServerSiteViewBean) getViewBean(ServerSiteViewBean.class);
                passPgSessionMap(vb);
                vb.forwardTo(getRequestContext());
            }
        } catch (AMConsoleException e) {
            setInlineAlertMessage(CCAlert.TYPE_ERROR, "message.error", e.getMessage());
            forwardTo();
        } catch (MalformedURLException mue) {
            setInlineAlertMessage(CCAlert.TYPE_ERROR, "message.error", mue.getMessage());
            forwardTo();
        }
    } else {
        setInlineAlertMessage(CCAlert.TYPE_ERROR, "message.error", "serverconfig.create.site.missing.attributes");
        forwardTo();
    }
}
Also used : MalformedURLException(java.net.MalformedURLException) FQDNUrl(com.sun.identity.shared.FQDNUrl) AMPropertySheet(com.sun.identity.console.base.AMPropertySheet) ServerSiteModel(com.sun.identity.console.service.model.ServerSiteModel) AMConsoleException(com.sun.identity.console.base.model.AMConsoleException)

Example 7 with FQDNUrl

use of com.sun.identity.shared.FQDNUrl 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);
    }
}
Also used : MalformedURLException(java.net.MalformedURLException) SSOToken(com.iplanet.sso.SSOToken) Set(java.util.Set) SMSException(com.sun.identity.sm.SMSException) IdRepoException(com.sun.identity.idm.IdRepoException) SSOException(com.iplanet.sso.SSOException) FQDNUrl(com.sun.identity.shared.FQDNUrl) ConfigurationException(com.sun.identity.common.configuration.ConfigurationException) Iterator(java.util.Iterator) AMIdentityRepository(com.sun.identity.idm.AMIdentityRepository) CLIException(com.sun.identity.cli.CLIException) List(java.util.List) Map(java.util.Map)

Example 8 with FQDNUrl

use of com.sun.identity.shared.FQDNUrl 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);
    }
}
Also used : MalformedURLException(java.net.MalformedURLException) SSOToken(com.iplanet.sso.SSOToken) Set(java.util.Set) SMSException(com.sun.identity.sm.SMSException) IdRepoException(com.sun.identity.idm.IdRepoException) SSOException(com.iplanet.sso.SSOException) FQDNUrl(com.sun.identity.shared.FQDNUrl) ConfigurationException(com.sun.identity.common.configuration.ConfigurationException) AMIdentityRepository(com.sun.identity.idm.AMIdentityRepository) CLIException(com.sun.identity.cli.CLIException) List(java.util.List) Map(java.util.Map)

Aggregations

FQDNUrl (com.sun.identity.shared.FQDNUrl)8 MalformedURLException (java.net.MalformedURLException)6 Map (java.util.Map)5 Set (java.util.Set)5 SSOToken (com.iplanet.sso.SSOToken)3 HashMap (java.util.HashMap)3 HashSet (java.util.HashSet)3 Iterator (java.util.Iterator)3 SSOException (com.iplanet.sso.SSOException)2 CLIException (com.sun.identity.cli.CLIException)2 ConfigurationException (com.sun.identity.common.configuration.ConfigurationException)2 AMIdentityRepository (com.sun.identity.idm.AMIdentityRepository)2 IdRepoException (com.sun.identity.idm.IdRepoException)2 SMSException (com.sun.identity.sm.SMSException)2 ServiceConfig (com.sun.identity.sm.ServiceConfig)2 LinkedHashSet (java.util.LinkedHashSet)2 List (java.util.List)2 AMPropertySheet (com.sun.identity.console.base.AMPropertySheet)1 AMConsoleException (com.sun.identity.console.base.model.AMConsoleException)1 ServerSiteModel (com.sun.identity.console.service.model.ServerSiteModel)1