Search in sources :

Example 1 with PasswordValue

use of password.pwm.config.value.PasswordValue in project pwm by pwm-project.

the class StoredConfigurationImpl method initNewRandomSecurityKey.

public void initNewRandomSecurityKey() throws PwmUnrecoverableException {
    if (!isDefaultValue(PwmSetting.PWM_SECURITY_KEY)) {
        return;
    }
    writeSetting(PwmSetting.PWM_SECURITY_KEY, new PasswordValue(new PasswordData(PwmRandom.getInstance().alphaNumericString(1024))), null);
    LOGGER.debug("initialized new random security key");
}
Also used : PasswordValue(password.pwm.config.value.PasswordValue) PasswordData(password.pwm.util.PasswordData)

Example 2 with PasswordValue

use of password.pwm.config.value.PasswordValue in project pwm by pwm-project.

the class StoredConfigurationImpl method writeSetting.

public void writeSetting(final PwmSetting setting, final String profileID, final StoredValue value, final UserIdentity userIdentity) throws PwmUnrecoverableException {
    if (profileID == null && setting.getCategory().hasProfiles()) {
        throw new IllegalArgumentException("reading of setting " + setting.getKey() + " requires a non-null profileID");
    }
    if (profileID != null && !setting.getCategory().hasProfiles()) {
        throw new IllegalArgumentException("cannot specify profile for non-profile setting");
    }
    preModifyActions();
    changeLog.updateChangeLog(setting, profileID, value);
    domModifyLock.writeLock().lock();
    try {
        final Element settingElement = createOrGetSettingElement(document, setting, profileID);
        settingElement.removeContent();
        settingElement.setAttribute(XML_ATTRIBUTE_SYNTAX, setting.getSyntax().toString());
        settingElement.setAttribute(XML_ATTRIBUTE_SYNTAX_VERSION, Integer.toString(value.currentSyntaxVersion()));
        if (setting_writeLabels) {
            final Element labelElement = new Element("label");
            labelElement.addContent(setting.getLabel(PwmConstants.DEFAULT_LOCALE));
            settingElement.addContent(labelElement);
        }
        if (setting.getSyntax() == PwmSettingSyntax.PASSWORD) {
            final List<Element> valueElements = ((PasswordValue) value).toXmlValues("value", getKey());
            settingElement.addContent(new Comment("Note: This value is encrypted and can not be edited directly."));
            settingElement.addContent(new Comment("Please use the Configuration Manager GUI to modify this value."));
            settingElement.addContent(valueElements);
        } else if (setting.getSyntax() == PwmSettingSyntax.PRIVATE_KEY) {
            final List<Element> valueElements = ((PrivateKeyValue) value).toXmlValues("value", getKey());
            settingElement.addContent(valueElements);
        } else if (setting.getSyntax() == PwmSettingSyntax.NAMED_SECRET) {
            final List<Element> valueElements = ((NamedSecretValue) value).toXmlValues("value", getKey());
            settingElement.addContent(valueElements);
        } else {
            settingElement.addContent(value.toXmlValues("value", getKey()));
        }
        updateMetaData(settingElement, userIdentity);
    } finally {
        domModifyLock.writeLock().unlock();
    }
}
Also used : Comment(org.jdom2.Comment) PasswordValue(password.pwm.config.value.PasswordValue) Element(org.jdom2.Element) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) NamedSecretValue(password.pwm.config.value.NamedSecretValue)

Example 3 with PasswordValue

use of password.pwm.config.value.PasswordValue in project pwm by pwm-project.

the class ConfigGuideForm method generateStoredConfig.

public static StoredConfigurationImpl generateStoredConfig(final ConfigGuideBean configGuideBean) throws PwmUnrecoverableException {
    final Map<ConfigGuideFormField, String> formData = configGuideBean.getFormData();
    final StoredConfigurationImpl storedConfiguration = StoredConfigurationImpl.newStoredConfiguration();
    // templates
    updateStoredConfigTemplateValue(formData, storedConfiguration, PwmSetting.TEMPLATE_LDAP, ConfigGuideFormField.PARAM_TEMPLATE_LDAP, PwmSettingTemplate.Type.LDAP_VENDOR);
    updateStoredConfigTemplateValue(formData, storedConfiguration, PwmSetting.TEMPLATE_STORAGE, ConfigGuideFormField.PARAM_TEMPLATE_STORAGE, PwmSettingTemplate.Type.STORAGE);
    updateStoredConfigTemplateValue(formData, storedConfiguration, PwmSetting.DB_VENDOR_TEMPLATE, ConfigGuideFormField.PARAM_DB_VENDOR, PwmSettingTemplate.Type.DB_VENDOR);
    // establish a default ldap profile
    storedConfiguration.writeSetting(PwmSetting.LDAP_PROFILE_LIST, null, new StringArrayValue(Collections.singletonList(LDAP_PROFILE_NAME)), null);
    {
        final String newLdapURI = figureLdapUrlFromFormConfig(formData);
        final StringArrayValue newValue = new StringArrayValue(Collections.singletonList(newLdapURI));
        storedConfiguration.writeSetting(PwmSetting.LDAP_SERVER_URLS, LDAP_PROFILE_NAME, newValue, null);
    }
    if (configGuideBean.isUseConfiguredCerts()) {
        final StoredValue newStoredValue = new X509CertificateValue(configGuideBean.getLdapCertificates());
        storedConfiguration.writeSetting(PwmSetting.LDAP_SERVER_CERTS, LDAP_PROFILE_NAME, newStoredValue, null);
    }
    {
        // proxy/admin account
        final String ldapAdminDN = formData.get(ConfigGuideFormField.PARAM_LDAP_PROXY_DN);
        final String ldapAdminPW = formData.get(ConfigGuideFormField.PARAM_LDAP_PROXY_PW);
        storedConfiguration.writeSetting(PwmSetting.LDAP_PROXY_USER_DN, LDAP_PROFILE_NAME, new StringValue(ldapAdminDN), null);
        final PasswordValue passwordValue = new PasswordValue(PasswordData.forStringValue(ldapAdminPW));
        storedConfiguration.writeSetting(PwmSetting.LDAP_PROXY_USER_PASSWORD, LDAP_PROFILE_NAME, passwordValue, null);
    }
    storedConfiguration.writeSetting(PwmSetting.LDAP_CONTEXTLESS_ROOT, LDAP_PROFILE_NAME, new StringArrayValue(Collections.singletonList(formData.get(ConfigGuideFormField.PARAM_LDAP_CONTEXT))), null);
    {
        final String ldapContext = formData.get(ConfigGuideFormField.PARAM_LDAP_CONTEXT);
        storedConfiguration.writeSetting(PwmSetting.LDAP_CONTEXTLESS_ROOT, LDAP_PROFILE_NAME, new StringArrayValue(Collections.singletonList(ldapContext)), null);
    }
    {
        final boolean testuserEnabled = Boolean.parseBoolean(formData.get(ConfigGuideFormField.PARAM_LDAP_TEST_USER_ENABLED));
        if (testuserEnabled) {
            final String ldapTestUserDN = formData.get(ConfigGuideFormField.PARAM_LDAP_TEST_USER);
            storedConfiguration.writeSetting(PwmSetting.LDAP_TEST_USER_DN, LDAP_PROFILE_NAME, new StringValue(ldapTestUserDN), null);
        } else {
            storedConfiguration.resetSetting(PwmSetting.LDAP_TEST_USER_DN, LDAP_PROFILE_NAME, null);
        }
    }
    {
        // set admin query
        final String groupDN = formData.get(ConfigGuideFormField.PARAM_LDAP_ADMIN_GROUP);
        final List<UserPermission> userPermissions = Collections.singletonList(new UserPermission(UserPermission.Type.ldapGroup, null, null, groupDN));
        storedConfiguration.writeSetting(PwmSetting.QUERY_MATCH_PWM_ADMIN, new UserPermissionValue(userPermissions), null);
    }
    {
        // database
        final String dbClass = formData.get(ConfigGuideFormField.PARAM_DB_CLASSNAME);
        storedConfiguration.writeSetting(PwmSetting.DATABASE_CLASS, null, new StringValue(dbClass), null);
        final String dbUrl = formData.get(ConfigGuideFormField.PARAM_DB_CONNECT_URL);
        storedConfiguration.writeSetting(PwmSetting.DATABASE_URL, null, new StringValue(dbUrl), null);
        final String dbUser = formData.get(ConfigGuideFormField.PARAM_DB_USERNAME);
        storedConfiguration.writeSetting(PwmSetting.DATABASE_USERNAME, null, new StringValue(dbUser), null);
        final String dbPassword = formData.get(ConfigGuideFormField.PARAM_DB_PASSWORD);
        final PasswordValue passwordValue = new PasswordValue(PasswordData.forStringValue(dbPassword));
        storedConfiguration.writeSetting(PwmSetting.DATABASE_PASSWORD, null, passwordValue, null);
        final FileValue jdbcDriver = configGuideBean.getDatabaseDriver();
        if (jdbcDriver != null) {
            storedConfiguration.writeSetting(PwmSetting.DATABASE_JDBC_DRIVER, null, jdbcDriver, null);
        }
    }
    {
        // telemetry
        final boolean telemetryEnabled = Boolean.parseBoolean(formData.get(ConfigGuideFormField.PARAM_TELEMETRY_ENABLE));
        storedConfiguration.writeSetting(PwmSetting.PUBLISH_STATS_ENABLE, null, new BooleanValue(telemetryEnabled), null);
        final String siteDescription = formData.get(ConfigGuideFormField.PARAM_TELEMETRY_DESCRIPTION);
        storedConfiguration.writeSetting(PwmSetting.PUBLISH_STATS_SITE_DESCRIPTION, null, new StringValue(siteDescription), null);
    }
    // cr policy
    if (formData.containsKey(ConfigGuideFormField.CHALLENGE_RESPONSE_DATA)) {
        final String stringValue = formData.get(ConfigGuideFormField.CHALLENGE_RESPONSE_DATA);
        final StoredValue challengeValue = ChallengeValue.factory().fromJson(stringValue);
        storedConfiguration.writeSetting(PwmSetting.CHALLENGE_RANDOM_CHALLENGES, "default", challengeValue, null);
    }
    // set site url
    storedConfiguration.writeSetting(PwmSetting.PWM_SITE_URL, new StringValue(formData.get(ConfigGuideFormField.PARAM_APP_SITEURL)), null);
    // enable debug mode
    storedConfiguration.writeSetting(PwmSetting.DISPLAY_SHOW_DETAILED_ERRORS, null, new BooleanValue(true), null);
    return storedConfiguration;
}
Also used : FileValue(password.pwm.config.value.FileValue) StoredConfigurationImpl(password.pwm.config.stored.StoredConfigurationImpl) StoredValue(password.pwm.config.StoredValue) UserPermissionValue(password.pwm.config.value.UserPermissionValue) X509CertificateValue(password.pwm.config.value.X509CertificateValue) PasswordValue(password.pwm.config.value.PasswordValue) BooleanValue(password.pwm.config.value.BooleanValue) List(java.util.List) StringValue(password.pwm.config.value.StringValue) StringArrayValue(password.pwm.config.value.StringArrayValue) UserPermission(password.pwm.config.value.data.UserPermission)

Aggregations

PasswordValue (password.pwm.config.value.PasswordValue)3 List (java.util.List)2 ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1 Comment (org.jdom2.Comment)1 Element (org.jdom2.Element)1 StoredValue (password.pwm.config.StoredValue)1 StoredConfigurationImpl (password.pwm.config.stored.StoredConfigurationImpl)1 BooleanValue (password.pwm.config.value.BooleanValue)1 FileValue (password.pwm.config.value.FileValue)1 NamedSecretValue (password.pwm.config.value.NamedSecretValue)1 StringArrayValue (password.pwm.config.value.StringArrayValue)1 StringValue (password.pwm.config.value.StringValue)1 UserPermissionValue (password.pwm.config.value.UserPermissionValue)1 X509CertificateValue (password.pwm.config.value.X509CertificateValue)1 UserPermission (password.pwm.config.value.data.UserPermission)1 PasswordData (password.pwm.util.PasswordData)1