Grails Acegi插件 - 如何更新缓存?

时间:2010-02-25 16:00:20

标签: grails spring-security

我遇到了Acegi插件的问题。问题是Acegi缓存用户信息。如果我更新角色或密码,则不会立即显示更改。有一段时间我甚至可以注销并使用以前的密码登录。我找到了2个解决方案JIRA

  1. 在SecurityConfig.groovy中设置cacheUsers = false
  2. 使用特殊过滤器更新securityContext
  3. 两种解决方案都有效。不幸的是,两者都产生了大量的数据库查询。

    用户仅在UserService.update(..)中更新,我可以预期它们很少会更新。有没有机会立即更新securityContext。这对当前用户来说没问题。但是我可以为其他登录用户做到吗?例如如果管理员更改某个用户的角色/密码

1 个答案:

答案 0 :(得分:1)

cacheUsers = false是最佳选择。它不会产生“加载”查询,每次登录只需一次。轻微的额外成本超过了缓存的恼人副作用。