Я интегрировал подключаемый модуль Spring Security с моим приложением Grails, в котором Hibernate используется как инструмент ORM ...
С помощью подключаемого модуля Spring Security все приложение работает нормально, включая аутентификацию, авторизацию ...
Но недавно у меня был один случай, когда я столкнулся с некоторыми проблемами:
Вы вошли в систему как: администратор Роль администратора: ROLE_ADMIN Права ROLE_ADMIN: каждый URL-адрес доступен для ROLE_ADMIN
так что как администратор, когда я пытаюсь обновить привилегии, назначенные для ROLE_ADMIN, он выдает исключение:
2011-03-24 10:20:14,035 [http-8080-2] ERROR errors.GrailsExceptionResolver - Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
at ConfigController$_closure45_closure59.doCall(ConfigController:1128)
at ConfigController$_closure45.doCall(ConfigController:1123)
at ConfigController$_closure45.doCall(ConfigController)
at java.lang.Thread.run(Thread.java:619)
Может быть, это потому, что я пытаюсь обновить привилегии вошедшего в систему самого пользователя ...
Внутри кода также везде, где я сохраняю / обновляю / удаляю любой объект, используя hibernate, я проверяю flush: false, например:
user.save flush:false
Так что я хочу знать, что тамв любом случае, когда вошедший в систему пользователь может обновить привилегии, которые также будут отражать его / ее тоже ..
Спасибо, яN заранее ..