Добавление дополнительных атрибутов в настройки области

Мы внедрили собственный аутентификатор для поддержки рабочего процесса сброса пароля с помощью SMS OTP. Аутентификатор использует номер телефона, хранящийся в атрибуте пользователя.

Мы хотим хранить учетные данные для провайдера SMS в настройках Realm, поэтому мы ищем способ добавить некоторые дополнительные атрибуты конфигурации в настройки Realm в отдельном теге, таком как Login, Theme и т. д. Было бы идеально, если бы Authentication Провайдер может «объявить» эти атрибуты конфигурации. Если нет, есть ли другой способ расширить настройки Realm?


person Shriharsh Saboji    schedule 20.11.2017    source источник
comment
Я ищу это также на уровне области. Поставщик аутентификации определенно может сделать конфигурации доступными, и они могут быть более подходящими там.   -  person Jerry Saravia    schedule 15.10.2018
comment
То же желание, другой вариант использования: мы хотели бы сделать некоторые атрибуты доступными для шаблонов. Например. mainApplicationURL=https://www.example.com/home.html для области prod и mainApplicationURL=https://test.internal.example.com/home.html для области test...   -  person Peter V. Mørch    schedule 12.03.2021
comment
Также есть: lists.jboss.org/pipermail/keycloak- dev/2016-August/007977.html - не похоже, что это возможно....   -  person Peter V. Mørch    schedule 12.03.2021


Ответы (1)


Вот пример добавления настраиваемых свойств к аутентификатору. Как только аутентификатор будет добавлен в поток, вы сможете установить конфигурации для этого конкретного экземпляра аутентификатора. если вы добавите аутентификатор в другой поток, у него будет другой набор конфигураций, характерных для этого экземпляра в этом другом потоке.

public class MyFactory implements AuthenticatorFactory {
    @Override
    public boolean isConfigurable() {
        return true;
    }

    private static final List<ProviderConfigProperty> configProperties = new ArrayList<>();

    static {
        ProviderConfigProperty someCheck = new ProviderConfigProperty(
                "some.check.property.name",
                "Some Check",
                "This does some check. You'll see this in the UI.",
                ProviderConfigProperty.BOOLEAN_TYPE,
                true);
        configProperties.add(someCheck);

    }


    @Override
    public List<ProviderConfigProperty> getConfigProperties() {
        return configProperties;
    }

}
person Jerry Saravia    schedule 15.10.2018