3

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";
    }
 ...

以及以 org.keycloak.authentication.forms.RegistrationProfile 为模型的关联FormAction

public class RegistrationFormAction implements FormAction{
...

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

仅包含以下文本:

com.realcomp.keycloak.RegistrationFormActionFactory

在 Keycloak 管理页面中,我制作了Registration身份验证流程的副本并将其命名为Copy of Registration。向我的新流程添加执行时,我在可用提供程序的下拉列表中看到了我的自定义“ RC Profile Validation ”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])

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

4

1 回答 1

2

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

已经创建了一个问题单,您可以在此处关注它:

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

于 2016-04-18T18:47:44.603 回答