2010-02-25 5 views
2

J'ai un problème avec Acegi Plugin. Le problème est que Acegi met en cache les informations utilisateur. Si je mets à jour les rôles ou le mot de passe, le changement n'apparaît pas immédiatement. Pendant un moment, je peux même me déconnecter et me connecter avec le mot de passe précédent. J'ai trouvé 2 solutions JIRA.Grails Acegi Plugin - comment mettre à jour le cache?

  1. Set cacheUsers = false dans SecurityConfig.groovy
  2. Utiliser un filtre spécial pour mettre à jour SecurityContext

Les deux solutions fonctionnent. Malheureusement, les deux produisent des charges de requêtes de base de données.

Les utilisateurs sont mis à jour uniquement dans UserService.update (..) et je peux m'attendre à ce qu'ils soient rarement mis à jour. Y a-t-il une chance de mettre immédiatement à jour securityContext? Ce n'est pas un problème pour l'utilisateur actuel. Mais puis-je le faire même pour un autre utilisateur connecté? par exemple. si admin modifie les rôles/mot de passe pour certains utilisateurs

Répondre

1

cacheUsers = false est la meilleure option. Il ne produit pas de "charges" de requêtes, une seule par connexion. Le léger surcoût l'emporte sur les effets secondaires gênants de la mise en cache.

Questions connexes