after enabled force detection and lock some accounts Temporarily,i want to continue using those accounts to login,and the login page will show me “invalid username / password”. Now I want the login page show me something like “account is locked, try it later”. How can I develop it ,with spi or changing ftl ?
You’ll have to customize the Authenticator that does the username/password test, and then customize the message key that gets sent to the error.ftl page. You’ll probably have to create the message.properties file in a separate theme in order to do that. Here are the docs for both. Post follow up questions here if you have them.
https://www.keycloak.org/docs/latest/server_development/#_auth_spi
https://www.keycloak.org/docs/latest/server_development/#_themes
1 Like
thanks ,i just did it.
But i delete some code in method authenticate
public void authenticate(AuthenticationFlowContext context) {
MultivaluedMap<String, String> formData = new MultivaluedMapImpl<>();
String loginHint = context.getAuthenticationSession().getClientNote(OIDCLoginProtocol.LOGIN_HINT_PARAM);
// String rememberMeUsername = AuthenticationManager.getRememberMeUsername(context.getRealm(), context.getHttpRequest().getHttpHeaders());
//
// if (loginHint != null || rememberMeUsername != null) {
// if (loginHint != null) {
// formData.add(AuthenticationManager.FORM_USERNAME, loginHint);
// } else {
// formData.add(AuthenticationManager.FORM_USERNAME, rememberMeUsername);
// formData.add("rememberMe", "on");
// }
// }
Response challengeResponse = challenge(context, formData);
context.challenge(challengeResponse);
}
seems that i delete the remeber me options. Because if not deleting these code ,it will case exception noclass ‘AuthenticationManager’ exist . How can I solve this problem ? thank you