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