Объект домена, используемый acegi, кэшируется. По стечению обстоятельств у меня была такая же проблема на этой неделе, и вчера написал решение !
В итоге у вас есть два варианта:
Отключите кэширование объекта домена, добавив cacheUsers = false в ваш SecurityConfig.groovy
Обновите объект домена, заменив его в SecurityContextHolder
private def refreshUserPrincipal(user) {
GrantedAuthority[] auths = user.authorities.collect {
new GrantedAuthorityImpl(it.authority)
}
def grailsUser = new GrailsUserImpl(
user.username
"",
true,
true,
true,
true,
auths,
user);
def authToken = new UsernamePasswordAuthenticationToken(grailsUser, "", auths)
SecurityContextHolder.context.authentication = authToken
}
(Проверьте источник GrailsUserImpl , чтобы увидеть, что означают все эти истинные значения!)