Keycloak 从管理控制台获取配置

Keycloak getting config from admin console

我已经通过重写 getConfigProperties 方法在 keycloak 中创建了配置 AuthenticatorFactory界面。

@Override
public List<ProviderConfigProperty> getConfigProperties() {
    final List<ProviderConfigProperty> configProperties = new ArrayList<>();
    ProviderConfigProperty property = new ProviderConfigProperty();
    property.setName("external.url");
    property.setLabel("External service base url");
    property.setType(ProviderConfigProperty.STRING_TYPE);
    property.setHelpText("Base url for the external service base url");
    configProperties.add(property);

    return configProperties;
}

现在我正在尝试使用 init() 方法

访问管理控制台中的配置集
@Override
public void init(Config.Scope config) {
    super.init(config);
    url = config.get("external.url");
}

但事实并非如此,因为它采用的是配置文件,而不是管理控制台的配置。我如何从管理控制台访问配置,以便我可以在运行时更改值而无需重新运行整个 docker 进程?

在您的 Authenticator 实施中使用 AuthenticationFlowContext:

这两种方法都公开了它:

void authenticate(AuthenticationFlowContext context);
void action(AuthenticationFlowContext context);
final Map<String, String> config = context.getAuthenticatorConfig().getConfig();