2010-02-25 5 views
2

Acegi Plugin에 문제가 있습니다. 문제는 Acegi가 사용자 정보를 캐시한다는 것이다. 역할이나 암호를 업데이트하면 변경 내용이 즉시 나타나지 않습니다. 잠시 동안 로그 아웃하고 이전 비밀번호로 로그인 할 수도 있습니다. 나는 2 개의 해결책을 찾았다 JIRA. SecurityConfig.groovy 거짓Grails Acegi Plugin - 캐시를 업데이트하는 방법은 무엇입니까?

  1. 설정 cacheUsers =
  2. 를 사용하여 특수 필터는 SecurityContext에

두 솔루션의 작업을 업데이트합니다. 불행히도, 둘 다 많은 데이터베이스 쿼리를 생성합니다.

사용자는 UserService.update (..)에서만 업데이트되며 거의 업데이트되지 않을 것으로 예상됩니다. securityContext를 즉시 업데이트 할 수 있습니까? 현재 사용자에게는 문제가되지 않습니다. 하지만 다른 로그인 한 사용자도 할 수 있습니까? 예 : 관리자가 일부 사용자의 역할/비밀번호를 변경하는 경우

답변

1

cacheUsers = false가 가장 좋습니다. 쿼리 당 "로드"를 생성하지 않으며 로그인 당 하나씩 만 생성합니다. 약간의 추가 비용은 캐싱의 성가신 부작용보다 큽니다.

관련 문제