Keycloak 从管理控制台获取配置



我通过getConfigProperties覆盖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();

最新更新