Grails 用户角色的不同目标URL

Grails 用户角色的不同目标URL,grails,login,spring-security,Grails,Login,Spring Security,如何在登录后根据用户角色配置不同的目标URL?我正在使用Spring安全插件。 <form-login login-processing-url="/user/login" login-page="/login" default-target-url="/loginsuccess" authentication-failure-url="/loginfailure" /> 在检查了映射

如何在登录后根据用户角色配置不同的目标URL?我正在使用Spring安全插件。


<form-login
            login-processing-url="/user/login"
            login-page="/login"
            default-target-url="/loginsuccess"
            authentication-failure-url="/loginfailure" />

在检查了映射到登录访问url上的Spring controller中的用户角色后,为什么不能重定向到另一个页面?

我认为您可以定义一个defaultTargetUrl,就像Denis提到的或本网站中提到的那样:如hitty5所说

您可以根据用户在默认请求响应中的角色设置重定向逻辑

对于grails:

在config.groovy中

grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/login/loggedIn'
在LoginController中(因为该控制器包含已配置的默认操作)


我希望这有助于……

尝试在stackoverflow中搜索该问题。你的问题面临许多问题。e、 这不是我想做的。我想根据用户的角色,在成功登录后将用户发送到不同的视图。例如,成功登录后,具有ROLL_用户角色的用户被重定向到userIndex.gsp,具有ROLL_管理员角色的用户被重定向到adminIndex.gsp。我想这是一个解决方案:
@Secured(['ROLE_ADMIN', 'ROLE_DEFAULT'])
    def loggedIn = {
        Usuario user = springSecurityService.currentUser
        def roleDefault = Rol.findByAuthority("ROLE_DEFAULT")
        if(user.authorities.contains(roleDefault))
            redirect(controller: 'factura')
        def roleAdmin = Rol.findByAuthority("ROLE_ADMIN")
        if(user.authorities.contains(roleAdmin))
            redirect(controller: 'noticia')
    }