首页 > 解决方案 > Keycloak 自定义表单提供程序:表单的操作 url 错误

问题描述

我在 RestCredentialFlow 中添加了一个自定义表单,我可以配置新的流程执行并看到新的表单。看起来一切都很好。

唯一的问题是表单操作 url 指向注册而不是reset-credentials

   <form id="kc-reset-password-form" class="sb-form-box" action="http://localhost:8080/auth/realms/soka/login-actions/registration?session_code=**&amp;execution=478d7632-2821-42f1-9c34-aa013fea33eb&amp;client_id=account&amp;" method="post">
      ...

      </form>

我可以在浏览器中更改它,一切正常。

任何人都可以帮忙,为什么它指向注册以及如何更改它。我没有看到与注册流程的任何交互。

谢谢

这里呈现了表单,这已经返回了带有错误 actionUrl 的表单。

public class ResetCredentialPage implements FormAuthenticator, FormAuthenticatorFactory {

    private static final Logger log = Logger.getLogger(ResetCredentialPage.class);

    public static final String PROVIDER_ID = "reset-credential-page-form";

    @Override
    public Response render(FormContext context, LoginFormsProvider form) {
         return form.createPasswordReset();
    }
   ...
}

标签: keycloakredhat-sso

解决方案


不确定您是否找到了答案,我的位置完全相同。根据我对文档的阅读,我强烈怀疑 FormAction/FormAuthenticator 类仅用于注册页面。所以动作 uri 并不意味着注册 uri 以外的任何东西——基本上我怀疑它或多或少是硬编码的。

如果我错了,请告诉我。


推荐阅读