问题描述
我刚刚在Grails 3.3.11中创建了具有两个用户角色的示例应用程序,即ROLE_USER和ROLE_ADMIN(ROLE_ADMIN> ROLE_USER),并创建了一个简单的名为secureController的控制器,其中具有3个动作。
package com.mycompany.myapp
import grails.plugin.springsecurity.annotation.Secured
class SecureController {
def index() {
render("Hello")
}
@Secured('ROLE_USER')
def user() {
render("User")
}
@Secured('ROLE_ADMIN')
def admin() {
render("Admin")
}
}
因此,索引操作是所有人共有的。因此,管理员有权访问所有3个操作,而对于用户角色,只有2个操作有权访问。 假设用户(即ROLE_USER已登录并尝试打开管理员操作),则该用户将遇到禁止的错误,这是预期的错误,因为该用户无权执行该操作。 假设如果我们关闭浏览器然后再次打开,因为已经有一个角色为ROLE_USER的用户登录并尝试打开admin操作,我们应该会收到Forbidden消息,但是这里发生了admin和auth操作之间的重复调用,这是不正常的。
注意,我可以在Firefox浏览器中重现此问题 我相信这是基本功能,但不知道它是如何错过的。
请参考示例应用程序https://gitlab.com/hari.vasunooru/grails3authentication/-/tree/master
以及参考视频https://gitlab.com/hari.vasunooru/grails3authentication/-/blob/master/zoom_0.mp4
信息问题同时出现在https协议和http协议中,并且已经出现了类似的问题,但仍然处于打开状态。(https://github.com/grails-plugins/grails-spring-security-core/issues)
请建议我是否错过任何事情
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)