代码之家  ›  专栏  ›  技术社区  ›  Pablo Mosby

Spring Security-Grails 3.2.2-ERR\u TOO\u MANY\u重定向

  •  2
  • Pablo Mosby  · 技术社区  · 7 年前

    我身上有这个 application.yml

    grails.plugin.springsecurity.successHandler.alwaysUseDefault = true
    grails.plugin.springsecurity.successHandler.defaultTargetUrl = '/l/loggedIn'
    

    l/loggedIn 看起来像:

    def loggedIn() {
        User user = springSecurityService.currentUser
    
        def roleDefault = Role.findByAuthority("ROLE_DEFAULT")
        if(user.authorities.contains(roleDefault))
            redirect(controller: 'foo', action:'index')
    
        def roleAdmin = Role.findByAuthority("ROLE_ADMIN")
        if(user.authorities.contains(roleAdmin))
            redirect(view: 'index')
    
    }
    

    当我以身份登录时 admin ERR_TOO_MANY_REDIRECTS

    有办法解决这个问题吗?


    使现代化

    @Secured(["ROLE_ADMIN", "ROLE_DEFAULT"])
    class FooController {
    
        def index() {}
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Adeel Ansari    7 年前

    redirect 不需要 view 在to account中, render

    允许的选项包括, action , controller , uri , url params , fragment 和/或域实例。

    所以,你可以这样做,

    def loggedIn() {
        User user = springSecurityService.currentUser
    
        def roleDefault = Role.findByAuthority("ROLE_DEFAULT")
        if(user.authorities.contains(roleDefault))
            redirect(controller: 'foo', action:'index')
    
        def roleAdmin = Role.findByAuthority("ROLE_ADMIN")
        if(user.authorities.contains(roleAdmin))
            redirect(controller: 'foo', action:'adminIndex')
    }
    

    actions ,具有适当的视图。

    @Secured(["ROLE_ADMIN", "ROLE_DEFAULT"])
    class FooController {
    
        def index() {}
    
        def adminIndex() {}
    
    }
    

    阅读 docs