Search in sources :

Example 11 with UpgradeException

use of org.forgerock.openam.upgrade.UpgradeException in project OpenAM by OpenRock.

the class DelegationConfigUpgradeStep method perform.

@Override
public void perform() throws UpgradeException {
    try {
        initConfig();
        if (!newPermissions.isEmpty()) {
            UpgradeProgress.reportStart(AUDIT_PERM_NEW_START);
            handleNewPermissions();
            UpgradeProgress.reportEnd(AUDIT_UPGRADE_SUCCESS);
        }
        if (!newPrivileges.isEmpty()) {
            UpgradeProgress.reportStart(AUDIT_PRIV_NEW_START);
            handleNewPrivileges();
            UpgradeProgress.reportEnd(AUDIT_UPGRADE_SUCCESS);
        }
        if (!privilegeUpdates.isEmpty()) {
            UpgradeProgress.reportStart(AUDIT_PRIV_UPDATE_START);
            handlePrivilegeUpdates();
            UpgradeProgress.reportEnd(AUDIT_UPGRADE_SUCCESS);
        }
    } catch (SSOException ssoE) {
        UpgradeProgress.reportEnd(AUDIT_UPGRADE_FAIL);
        throw new UpgradeException("Failed performing the upgrade of delegation", ssoE);
    } catch (SMSException smsE) {
        UpgradeProgress.reportEnd(AUDIT_UPGRADE_FAIL);
        throw new UpgradeException("Failed performing the upgrade of delegation", smsE);
    }
}
Also used : UpgradeException(org.forgerock.openam.upgrade.UpgradeException) SMSException(com.sun.identity.sm.SMSException) SSOException(com.iplanet.sso.SSOException)

Example 12 with UpgradeException

use of org.forgerock.openam.upgrade.UpgradeException in project OpenAM by OpenRock.

the class EnableGenericRepoStep method perform.

@Override
public void perform() throws UpgradeException {
    try {
        ServiceSchema genericSchema = getGenericLDAPv3Schema();
        UpgradeProgress.reportStart("upgrade.genericrepo.start");
        genericSchema.setI18Nkey("a2039");
        UpgradeProgress.reportEnd("upgrade.success");
    } catch (Exception ex) {
        UpgradeProgress.reportEnd("upgrade.failed");
        DEBUG.error("An error occurred while trying to enable the generic LDAPv3 repo", ex);
        throw new UpgradeException(ex);
    }
}
Also used : UpgradeException(org.forgerock.openam.upgrade.UpgradeException) ServiceSchema(com.sun.identity.sm.ServiceSchema) SMSException(com.sun.identity.sm.SMSException) UpgradeException(org.forgerock.openam.upgrade.UpgradeException) SSOException(com.iplanet.sso.SSOException)

Example 13 with UpgradeException

use of org.forgerock.openam.upgrade.UpgradeException in project OpenAM by OpenRock.

the class MigrateValidGotoSetting method initialize.

@Override
public void initialize() throws UpgradeException {
    try {
        final PolicyManager pm = new PolicyManager(getAdminToken(), HIDDEN_REALM);
        if (pm.getPolicyNames(DELEGATION_POLICY_NAME).isEmpty()) {
            if (DEBUG.messageEnabled()) {
                DEBUG.message("Unable to find the delegation policy in the hidden realm, looking for existing goto" + " domain values.");
            }
            //The delegation policy is not defined yet in the configuration, we need to migrate the goto domains.
            final ServiceConfigManager scm = new ServiceConfigManager(ISAuthConstants.AUTH_SERVICE_NAME, getAdminToken());
            for (final String realm : getRealmNames()) {
                if (DEBUG.messageEnabled()) {
                    DEBUG.message("Looking for valid goto URLs in realm " + realm);
                }
                final ServiceConfig organizationConfig = scm.getOrganizationConfig(realm, null);
                final Map<String, Set<String>> attrs = organizationConfig.getAttributesWithoutDefaults();
                final Set<String> validDomains = attrs.get(LEGACY_GOTO_DOMAINS_SETTING);
                if (validDomains != null && !validDomains.isEmpty()) {
                    changes.put(realm, validDomains);
                }
            }
            if (DEBUG.messageEnabled()) {
                DEBUG.message("Found the following existing goto URL domains in realms: " + changes);
            }
        } else {
            delegationPolicyFound = true;
        }
    } catch (final NameNotFoundException nnfe) {
        throw new UpgradeException("Unable to find hidden realm", nnfe);
    } catch (final PolicyException pe) {
        throw new UpgradeException("Unexpected error occurred while retrieving policies from the hidden realm", pe);
    } catch (final SMSException smse) {
        throw new UpgradeException("An error occurred while checking for old valid goto domains", smse);
    } catch (final SSOException ssoe) {
        throw new UpgradeException("An error occurred while checking for old valid goto domains", ssoe);
    }
}
Also used : UpgradeException(org.forgerock.openam.upgrade.UpgradeException) PolicyManager(com.sun.identity.policy.PolicyManager) Set(java.util.Set) ServiceConfig(com.sun.identity.sm.ServiceConfig) NameNotFoundException(com.sun.identity.policy.NameNotFoundException) PolicyException(com.sun.identity.policy.PolicyException) SMSException(com.sun.identity.sm.SMSException) SSOException(com.iplanet.sso.SSOException) ServiceConfigManager(com.sun.identity.sm.ServiceConfigManager)

Example 14 with UpgradeException

use of org.forgerock.openam.upgrade.UpgradeException in project OpenAM by OpenRock.

the class MigrateValidGotoSetting method perform.

@Override
public void perform() throws UpgradeException {
    try {
        if (!changes.isEmpty()) {
            final ServiceConfigManager validationService = new ServiceConfigManager(VALIDATION_SERVICE, getAdminToken());
            final ServiceConfigManager authService = new ServiceConfigManager(ISAuthConstants.AUTH_SERVICE_NAME, getAdminToken());
            for (final Map.Entry<String, Set<String>> entry : changes.entrySet()) {
                final String realm = entry.getKey();
                if (DEBUG.messageEnabled()) {
                    DEBUG.message("Starting to migrate goto domains for realm: " + realm);
                }
                UpgradeProgress.reportStart("upgrade.goto.migrate.start", realm);
                validationService.createOrganizationConfig(realm, getAttrMap(GOTO_RESOURCES, entry.getValue()));
                //The settings now are migrated, we should now clear up the legacy settings
                if (DEBUG.messageEnabled()) {
                    DEBUG.message("Removing old goto domains from iPlanetAMAuthService");
                }
                final ServiceConfig organizationConfig = authService.getOrganizationConfig(realm, null);
                organizationConfig.setAttributes(getAttrMap(LEGACY_GOTO_DOMAINS_SETTING, Collections.EMPTY_SET));
                UpgradeProgress.reportEnd("upgrade.success");
            }
        }
        if (DEBUG.messageEnabled()) {
            DEBUG.message("Attempting to create the delegation policy in the hidden realm");
        }
        UpgradeProgress.reportStart("upgrade.goto.policy.start");
        final PolicyManager pm = new PolicyManager(getAdminToken(), HIDDEN_REALM);
        String policy = AMSetupServlet.readFile(DELEGATION_POLICY_FILE);
        policy = ServicesDefaultValues.tagSwap(policy, true);
        //Adding the delegation privileges to allow agent accounts to read the new validationService.
        PolicyUtils.createPolicies(pm, new ByteArrayInputStream(policy.getBytes()));
        if (DEBUG.messageEnabled()) {
            DEBUG.message("Delegation policy successfully created under the hidden realm");
        }
        UpgradeProgress.reportEnd("upgrade.success");
    } catch (final IOException ioe) {
        UpgradeProgress.reportEnd("upgrade.failed");
        throw new UpgradeException("An IO error occurred while reading the delegation policy", ioe);
    } catch (final PolicyException pe) {
        UpgradeProgress.reportEnd("upgrade.failed");
        throw new UpgradeException("An unexpected error occurred while importing the delegation policy", pe);
    } catch (final SMSException smse) {
        UpgradeProgress.reportEnd("upgrade.failed");
        throw new UpgradeException("An error occurred while migrating the valid goto domain setting", smse);
    } catch (final SSOException ssoe) {
        UpgradeProgress.reportEnd("upgrade.failed");
        throw new UpgradeException("An error occurred while migrating the valid goto domain setting", ssoe);
    }
}
Also used : PolicyManager(com.sun.identity.policy.PolicyManager) Set(java.util.Set) SMSException(com.sun.identity.sm.SMSException) SSOException(com.iplanet.sso.SSOException) IOException(java.io.IOException) UpgradeException(org.forgerock.openam.upgrade.UpgradeException) ServiceConfig(com.sun.identity.sm.ServiceConfig) ByteArrayInputStream(java.io.ByteArrayInputStream) PolicyException(com.sun.identity.policy.PolicyException) HashMap(java.util.HashMap) Map(java.util.Map) ServiceConfigManager(com.sun.identity.sm.ServiceConfigManager)

Example 15 with UpgradeException

use of org.forgerock.openam.upgrade.UpgradeException in project OpenAM by OpenRock.

the class UpgradeCTSMaxConnectionsConfigurationStep method initialize.

@Override
public void initialize() throws UpgradeException {
    if (VersionUtils.isCurrentVersionLessThan(AM_13, true)) {
        try {
            if (isSingleDirectoryConfigMaxConnectionsValueUsed()) {
                if (helper.getDefaultServerConfig(getAdminToken()).isDefaultStoreMode() && helper.getDefaultServerConfig(getAdminToken()).getCTSMaxConnections() == null) {
                    int directoryConfigMaxConnections = -1;
                    for (ServerInstanceConfig serverInstanceConfig : helper.getServerConfigs(getAdminToken()).values()) {
                        directoryConfigMaxConnections = serverInstanceConfig.getDirectoryConfigMaxConnections();
                        if (directoryConfigMaxConnections > 0) {
                            break;
                        }
                    }
                    serversToUpdate.put(ServerConfiguration.DEFAULT_SERVER_CONFIG, Integer.toString(calculateCTSMaxConnections(directoryConfigMaxConnections)));
                }
            } else {
                int mostUsedDirectoryConfigMaxConnectionsValue = getMostUsedDirectoryConfigMaxConnectionsValue();
                serversToUpdate.put(ServerConfiguration.DEFAULT_SERVER_CONFIG, Integer.toString(calculateCTSMaxConnections(mostUsedDirectoryConfigMaxConnectionsValue)));
                for (Map.Entry<String, ServerInstanceConfig> serverInstanceConfig : helper.getServerConfigs(getAdminToken()).entrySet()) {
                    int directoryConfigMaxConnections = serverInstanceConfig.getValue().getDirectoryConfigMaxConnections();
                    if (mostUsedDirectoryConfigMaxConnectionsValue != directoryConfigMaxConnections && serverInstanceConfig.getValue().getCTSMaxConnections() == null) {
                        serversToUpdate.put(serverInstanceConfig.getKey(), Integer.toString(calculateCTSMaxConnections(directoryConfigMaxConnections)));
                    }
                }
            }
        } catch (Exception ex) {
            DEBUG.error("Unable to upgrade External CTS Configuration", ex);
            throw new UpgradeException(ex);
        }
    }
}
Also used : UpgradeException(org.forgerock.openam.upgrade.UpgradeException) HashMap(java.util.HashMap) Map(java.util.Map) UpgradeException(org.forgerock.openam.upgrade.UpgradeException) SMSException(com.sun.identity.sm.SMSException) IOException(java.io.IOException) ConfigurationException(com.sun.identity.common.configuration.ConfigurationException) SSOException(com.iplanet.sso.SSOException)

Aggregations

UpgradeException (org.forgerock.openam.upgrade.UpgradeException)81 SSOException (com.iplanet.sso.SSOException)29 HashMap (java.util.HashMap)27 SMSException (com.sun.identity.sm.SMSException)25 Set (java.util.Set)25 HashSet (java.util.HashSet)22 Map (java.util.Map)22 ServiceConfig (com.sun.identity.sm.ServiceConfig)21 EntitlementException (com.sun.identity.entitlement.EntitlementException)16 ServiceConfigManager (com.sun.identity.sm.ServiceConfigManager)14 Application (com.sun.identity.entitlement.Application)10 IOException (java.io.IOException)10 PolicyManager (com.sun.identity.policy.PolicyManager)8 PolicyException (com.sun.identity.policy.PolicyException)6 ServiceNotFoundException (com.sun.identity.sm.ServiceNotFoundException)6 EntitlementUtils.resourceTypeFromMap (org.forgerock.openam.entitlement.utils.EntitlementUtils.resourceTypeFromMap)6 Node (org.w3c.dom.Node)5 ServiceSchema (com.sun.identity.sm.ServiceSchema)4 ServiceSchemaManager (com.sun.identity.sm.ServiceSchemaManager)4 Properties (java.util.Properties)4