gpt4 book ai didi

keycloak - 如何在Keycloak中正确注册自定义FormAction?

转载 作者:行者123 更新时间:2023-12-02 21:48:53 24 4
gpt4 key购买 nike

Keycloak 1.9.1-Final

我已经实现了以下自定义 FormActionFactory。

public class RegistrationFormActionFactory implements FormActionFactory{

public static final String PROVIDER_ID = "rc-registration-profile-action";

@Override
public FormAction create(KeycloakSession session){
return new RegistrationFormAction();
}

@Override
public String getDisplayType(){
return "RC Profile Validation";
}
...

关联的 FormAction 模仿 org.keycloak.authentication.forms.RegistrationProfile

public class RegistrationFormAction implements FormAction{
...

在 jar 的 META-INF/services 中,我有一个文件:org.keycloak.authentication.FormActionFactory

仅包含以下文本:

com.realcomp.keycloak.RegistrationFormActionFactory

在 Keycloak 管理页面中,我制作了注册身份验证流程的副本,并将其命名为注册副本。将执行添加到我的新流程时,我在可用提供程序的下拉列表中看到我的自定义“RC 配置文件验证”FormAction。选择后,我在 Keycloak 服务器日志中收到以下异常:

14:31:00,264 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (default task-54) RESTEASY002005: Failed executing POST /admin/realms/master/authentication/flows/Copy of registration registration form/executions/execution: org.jboss.resteasy.spi.BadRequestException: No authentication provider found for id: rc-registration-profile-action
at org.keycloak.services.resources.admin.AuthenticationManagementResource.addExecution(AuthenticationManagementResource.java:394)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
(omitted...)

有趣的旁注:如果我将 FormActionFactory 中的 PROVIDER_ID 更改为“registration-profile-action”,一切都会按预期进行。不过这个PROVIDER_ID是RegistrationProfile类使用的,感觉不对。

我增加了日志记录的详细程度,并且我的 FormAction 似乎正在加载:

17:07:20,659 DEBUG [org.keycloak.services] (ServerService Thread Pool -- 50) Loaded SPI form-action (providers = [registration-profile-action, rc-registration-profile-action, registration-recaptcha-action, registration-password-action, registration-user-creation])

我可能错过了一些配置步骤。关于我在这里做错了什么有什么想法吗?

最佳答案

这是 1.9.x 版本中出现的错误。

问题单已创建,您可以在此处关注:

https://issues.jboss.org/browse/KEYCLOAK-2842

关于keycloak - 如何在Keycloak中正确注册自定义FormAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36633298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com