Keycloak 自定义表单提供程序:表单的操作 url 错误

Posted

技术标签:

【中文标题】Keycloak 自定义表单提供程序:表单的操作 url 错误【英文标题】:Keycloak Custom Form Provider: Form has wrong action url 【发布时间】:2020-03-17 10:18:40 【问题描述】:

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

唯一的问题是表单操作url指向registration而不是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();
    
   ...

【问题讨论】:

【参考方案1】:

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

如果我错了,请告诉我。

【讨论】:

以上是关于Keycloak 自定义表单提供程序:表单的操作 url 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何根据请求的范围自定义 KeyCloak 身份验证流程

Keycloak登录表单

部署keycloak自定义spi部署

Spring Security 和 Keycloak 因自定义身份验证提供程序而失败

KeyCloak 中的自定义提供程序,可以根据用户名和密码进行身份验证

如何在 Flask-Appbuilder 中为 OAuth2.0 使用自定义提供程序 [keycloak]?