All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.keycloak.common.profile.PropertiesProfileConfigResolver Maven / Gradle / Ivy

There is a newer version: 26.0.3
Show newest version
package org.keycloak.common.profile;

import org.keycloak.common.Profile;
import org.keycloak.common.Profile.Feature;

import java.util.Properties;
import java.util.function.UnaryOperator;

public class PropertiesProfileConfigResolver implements ProfileConfigResolver {

    private UnaryOperator getter;

    public PropertiesProfileConfigResolver(Properties properties) {
        this(properties::getProperty);
    }

    public PropertiesProfileConfigResolver(UnaryOperator getter) {
        this.getter = getter;
    }

    @Override
    public Profile.ProfileName getProfileName() {
        String profile = getter.apply("keycloak.profile");
        return profile != null ? Profile.ProfileName.valueOf(profile.toUpperCase()) : null;
    }

    @Override
    public FeatureConfig getFeatureConfig(String feature) {
        String key = getPropertyKey(feature);
        String config = getter.apply(key);
        if (config != null) {
            switch (config) {
                case "enabled":
                    return FeatureConfig.ENABLED;
                case "disabled":
                    return FeatureConfig.DISABLED;
                default:
                    throw new ProfileException("Invalid config value '" + config + "' for feature key " + key);
            }
        }
        return FeatureConfig.UNCONFIGURED;
    }

    public static String getPropertyKey(Feature feature) {
        return getPropertyKey(feature.getKey());
    }

    public static String getPropertyKey(String feature) {
        return "keycloak.profile.feature." + feature.replaceAll("[-:]", "_");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy