当前位置: 首页 > 知识库问答 >
问题:

在自定义密钥斗篷SPI身份验证器中处理用户的取消

夹谷辰沛
2023-03-14

我需要在自定义密钥斗篷SPI身份验证器中处理用户的取消。我实现了它,它工作得很好。我所需要的是取消登录流程,并从用户点击取消时的乞讨开始

    @Override
    public void action(AuthenticationFlowContext context) {
        logger.debug("action called ... context = " + context);
        String cancel = context.getHttpRequest().getDecodedFormParameters().getFirst("cancel");
        if (cancel != null) {
            context.cancelLogin();
            context.resetFlow();
            return;
        }
// OK handling...
}

在我的例子中,我得到了登录页面,但URL错误:

http://localhost:8080/auth/realms/realm1/login-actions/authenticate?execution=bb1fb7c3-0b59-4a07-b997-b619c6f9ea2a&client_id=realm1-client&tab_id=yjxyk7osjau

而不是当我第一次进入安全页面时这样的URL:

http://localhost:8080/auth/realms/realm1/protocol/openid-connect/auth?response_type=code&client_id=realm1-client&redirect_uri=http%3a%2f%2flocalhost%3a8081%2fsso%2flogin&state=2cc038b9-2c69-4648-ac39-e5864bc05ee9&login=true&scope=openid

共有1个答案

孔俊捷
2023-03-14

啊,我所需要的就是只留下一行(或者把它放在返回前的最后一个):

context.cancelLogin();

在我的自定义应用程序上,我需要用参数处理端点,KK将重定向我

/sso/login?error=access_denied&state=923e5b18-1d8e-4c96-9fed-c1dd122065bb
 类似资料:
  • 我试图实现一个自定义密钥克拉克身份验证器SPI,用于对外部身份提供程序进行身份验证。用户已经存在于keycloak存储中,我只需要连接到自定义SPI来验证他们。 我正在遵循官方指南https://www.keycloak.org/docs/latest/server_development/index.html#_auth_spi_walkthrough的第8.3节,这与我所需要的非常相似。

  • 我向我的领域添加了一个自定义OIDC身份提供者,我想使用直接访问授权流(或< code>grant_type=password),但这不起作用。 钥匙斗篷有可能吗? 当尝试使用授权代码流程时,一切正常,但使用时出错 被退回。 我正在尝试获取访问令牌 e 刷新令牌执行以下请求: 这是身份提供者配置:这是身份提供者配置

  • 我正在尝试实现一个自定义密钥克拉克身份验证器SPI,用于针对外部数据源/REST服务进行身份验证。计划是将它们迁移到Keycloak。 成功后,在keycloak数据源上创建用户。 创建自定义映射器以在令牌上添加额外的用户属性。 我正在遵循官方指南https://www.keycloak.org/docs/latest/server_development/index.html#_auth_spi

  • 嗨,好几天了,我都被困在这上面了!在使用本指南转换我的react应用程序后,我尝试使用KeyClope对我的electron应用程序进行身份验证。 当我运行'npm运行电子:dev'时,keyCloak会重定向到登录页面。然而,当我运行'npm运行电子:prod'这失败。 来自KeyClope服务器的日志显示: 请注意,重定向_uri是'file:///...“我相信这就是原因。 我也试图改变下面

  • 我们已经开发了一个REST API使用restease。 基本上,这些REST API是从另一个应用程序内部调用的,endpoint由KeyClope保护。 但有一个endpoint会暴露给外部方(该endpoint也会使用keyCloak进行保护)。 但是,由于外部方无法提供KeyClope身份验证代码,我们已经完成了一个实现,其中客户端使用应用程序生成的身份验证密钥注册,客户端将使用该身份验证

  • 在看了KeyClope之后,我找不到一种方法来进行任何短信验证。 你们有任何扩展或设置,以允许用户验证短信。 谢谢你的帮助。 乔纳森。