用户临时锁定上的Keycloak自定义消息

时间:2019-07-19 12:53:35

标签: keycloak keycloak-services keycloak-gatekeeper

我正在使用Kyecloak:4.8.0,并为我的领域启用了蛮力攻击。 现在,只要用户提供3次错误的凭据,该用户就会被暂时锁定。

但是用户仍然会看到“无效的用户名/密码”。

根据此线程Keycloak故意这样做: https://issues.jboss.org/browse/KEYCLOAK-5284

但是我仍然想向用户显示他的帐户已被锁定。

有什么办法可以自定义此消息?

我尝试通过在自定义按键斗篷主题中添加消息来做到这一点,如下所示:

位置:themes \ adminlte \ login \ messages \ messages_en.properties

accountTemporarilyDisabledMessage=Account is temporarily disabled, contact admin or try again later.

此更改无效。

1 个答案:

答案 0 :(得分:4)

经过Keycloak基本代码后,我发现:Keycloak使用Messages.INVALID_USER类中编写的属性中的AbstractFormAuthenticator(invalidUserMessage)。

现在该类由UsernamePasswordForm扩展,以将其更改为自定义消息,如下所示,我编写了自定义身份验证器(Keycloak SPI)

public class CustomUsernameFormAuthenticator extends UsernamePasswordForm {

    @Override
    protected String tempDisabledError() {
        return Messages.ACCOUNT_TEMPORARILY_DISABLED;
    }
}

在密钥斗篷中部署spi Jar之后,在您的领域中启用它。 我们完成了:)