Это филиал от this question. Разветвлено, потому что первоначальная цель этого вопроса была чем-то другим.grails Acegi: Как проверить истекший пароль
Я ищу самый простой способ проверить, не истек ли пароль. Срок действия пароля истекает, если его возраст превышает N дней, где N - значение, хранящееся в другой таблице.
Мой класс Пользователь выглядит следующим образом:
Security config:
loginUserDomainClass = "com.emp.app.user.User"
/**
* User domain class.
*/
class User {
static transients = ['pass','passwordExpired','credentialsNonExpired']
static hasMany = [authorities: Role]
static belongsTo = Role
/** Username */
String username
/** User Real Name*/
String userRealName
/** MD5 Password */
String passwd
/** enabled */
boolean enabled
String email
boolean emailShow
/** description */
String description = ''
/** plain password to create a MD5 password */
String pass = '[secret]'
static constraints = {
username(blank: false, unique: true)
userRealName(blank: false)
passwd(blank: false)
enabled()
}
public boolean isCredentialsNonExpired() {
//Check for the N value
return true;
}
}
Я добавил isCredentialsNonExpired() в надежде, что будет называться при входе в систему, когда учетные данные проверяются, но это не. Есть ли способ сделать это?
Я довольно смущен этим, не уверен, что мне нужно написать собственный код для замены какой-либо функции acegi или что-то еще.
Заранее благодарен.
Получил работу, спасибо. Теперь, чтобы узнать, как перенаправить на пользовательскую страницу. – Tom