首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keycloak:绕过身份验证器流

Keycloak:绕过身份验证器流
EN

Stack Overflow用户
提问于 2022-04-04 00:54:42
回答 1查看 158关注 0票数 0

我有两个UsernamePasswordForm类作为authenticators

SampleUsernamePasswordFormSecurityUsernamePasswordForm

如果SampleUsernamePasswordForm成功,则不需要迁移到SecurityUsernamePasswordForm,但如果存在凭据错误,我希望绕过SampleUsernamePasswordForm身份验证器,移到SecurityUsernamePasswordForm

两者现在都在ALTERNATIVE下面,这意味着如果一个失败了,它应该移到下一个

SampleUsernamePasswordForm,我试过

代码语言:javascript
复制
if (!validateForm(context, formData)) {
        Response challengeResponse = challenge(context, getDefaultChallengeMessage(context), FIELD_PASSWORD);
        context.failureChallenge(AuthenticationFlowError.INVALID_CREDENTIALS, challengeResponse);
 }

代码语言:javascript
复制
if (!validateForm(context, formData)) {
        context.failure(AuthenticationFlowError.INVALID_CREDENTIALS);
 }

我以为在这上面调用context.failure会触发SecurityUsernamePasswordForm,但它只是在同一个登录表单上显示了错误消息。

目前,我不得不求助于必须将SecurityUsernamePasswordForm登录到SampleUsernamePasswordForm中的地方,这看上去并不整洁。如何跳到SecurityUsernamePasswordForm

另外,由于某些原因,SampleUsernamePasswordForm对象在authenticate被调用之前创建了3-5次,这是身份验证器可以发生的事情吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-04 07:43:52

如果这两种执行都是ALTERNATİVE,则只需调用尝试即可。

在SampleUsernamePasswordForm上只需传递到下一次执行(SecurityUsernamePasswordForm)。但是,只要确保至少有一个失败或成功必须返回到流的尽头。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71731010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档