这是this question的后续行动。
我有一个自定义AuthenticationProvider,它扩展了AbstractUserDetailsAuthenticationProvider。在additionalAuthenticationChecks中,我正在做一些自定义身份验证工作,此过程的一部分是在登录屏幕上向用户显示一些消息。目前,为了进行测试,我创建了一个UserNotActivatedException:
class UserNotActivatedException extends AuthenticationException {
public UserNotActivatedException(String message, Throwable t) {
super(message, t)
}
public UserNotActivatedException(String message) {
super(message)
}
public UserNotActivatedException(String message, Object extraInformation) {
super(message, extraInformation)
}
}
在附加的身份验证检查中,我只是立即将其投入测试。现在,我需要知道我需要做什么才能让自己的失败消息显示在登录屏幕上。在spring-security-core默认配置中,我们可以覆盖以下内容:
errors.login.disabled = "Sorry, your account is disabled."
errors.login.expired = "Sorry, your account has expired."
errors.login.passwordExpired = "Sorry, your password has expired."
errors.login.locked = "Sorry, your account is locked."
errors.login.fail = "Sorry, we were not able to find a user with that username and password."
但我不知道如何添加自己的附加信息。
答案 0 :(得分:4)
看起来这些消息只会被生成authfail
的{{1}} LoginController
操作使用。这是模板中的代码(在插件中):
grails-app/controllers
(来自〜/ .grails / 1.3.7 / projects / project-name / plugins / spring-security-core-1.1.2 / src / templates / LoginController.groovy.template) < / p>
您可以将UserNotActivatedException类型添加到那里的条件中。