gpt4 book ai didi

grails - 使用Grails Spring Security插件进行无限重定向

转载 作者:行者123 更新时间:2023-12-02 15:13:49 25 4
gpt4 key购买 nike

我正在构建简单的Grails应用程序。为了安全起见,我使用的是Spring Security插件和Spring Security UI。
我想要三种类型的用户:

  • 标准用户(客户端),
  • 支持用户
  • 管理用户

  • 客户将登录并提出一些请求,支持人员将获得这些请求并做出响应。管理员将负责管理用户权限和角色以及其他一些内容。

    所以基本上我有三个角色:
  • ROLE_USER
  • ROLE_SUPPORT
  • ROLE_ADMIN

  • 用户登录时,根据用户角色,他/她将被重定向到不同的页面。我按照来自
    link

    这有效。但是有时我会收到以下错误:

    Firefox has detected that the server is redirecting the request for this address in a way that will never complete. This problem can sometimes be caused by disabling or refusing to accept cookies.



    这是我的UrlMappings.groovy:
       class UrlMappings {

    static mappings = {
    "/$controller/$action?/$id?"{
    constraints {
    // apply constraints here

    }

    }

    "/"(controller:'login', action:'auth')
    "500"(view:'/error')

    }
    }

    正确的方法是什么?我应该为每个角色创建不同的 Controller ,还是应该创建一个RequestController(大多数工作是通过请求域类完成),例如为每个角色指定不同的操作-例如userList,supportList,adminList等。

    最佳答案

    我的grails应用程序具有类似的要求,但角色略有不同。我要做的是以下几点:

    在UrlMappings.groovy中

    "/"(controller: "home")

    然后在我的HomeController中(这不完全是我的代码,但是您知道了)
    def user

    def index = {
    user = springSecurityService?.getAuthentication()?.details

    def role = user.getRole()
    if ('admin'.equals(role)) {
    redirect(view:'admin')
    } else if ('support'.equals(role)) {
    redirect(view:'support')
    } else {
    redirect(view:'home')
    }
    }

    我的猜测是,登录页面上出现错误时,将发生重定向问题。我将检查您如何处理异常,并确保它们不会尝试重定向回再次导致错误的登录页面。

    关于grails - 使用Grails Spring Security插件进行无限重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417095/

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