gpt4 book ai didi

java - 只读模式下不允许写操作(FlushMode.MANUAL) : with grails hibernate

转载 作者:太空宇宙 更新时间:2023-11-04 08:40:33 26 4
gpt4 key购买 nike

我已将 spring security 插件与我的 grails 应用程序集成,该应用程序将 hibernate 作为 ORM 工具...

使用 Spring Security 插件,我的应用程序一切正常,包括身份验证、授权......

但最近我遇到了一个案例,我遇到了一些问题:

登录身份:admin管理员角色:ROLE_ADMINROLE_ADMIN 权限: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

所以我想知道有什么方法可以让登录用户能够更新也能反射(reflect)他/她自己的权限..

提前致谢..

最佳答案

调用springSecurityService.reauthenticate更改用户的角色权限后。在链接页面的“重新验证”部分中,还有一个很好的代码片段,应该可以回答您的问题。

关于java - 只读模式下不允许写操作(FlushMode.MANUAL) : with grails hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5415623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com