0

我正在尝试根据其角色为用户设置不同的主页

grails.plugins.springsecurity.successHandler.defaultTargetUrl = "/home"

 grails.plugins.springsecurity.securityConfigType="InterceptUrlMap"
 grails.plugins.springsecurity.interceptUrlMap=[
....
....
'/User/**':['ROLE_USER'],
'/home/**':['ROLE_ADMIN','ROLE_USER'],
....
....
]

我设置成功处理程序控制器“HomeController”

在那我重定向角色明智的主页

import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils

class HomeController {
   def index() {

      if (SpringSecurityUtils.ifAllGranted('ROLE_ADMIN')) {
         redirect controller: '...', action: '...'
         return
      }
      if (SpringSecurityUtils.ifAllGranted('ROLE_USER')) {
         redirect controller: 'user', action: 'show'
         return
      }

   }

}

在此,当我通过 ADMIN Profile 登录时,它会点击“HomeController”并重定向

但是当我尝试从用户配置文件登录时,它给了我一个错误springSecurity.denied.message...

4

2 回答 2

0

问题似乎与您的重定向调用有关:

redirect controller: 'UserController'

它应该是

redirect controller: 'user'

因为在这种情况下,您遵循 url 约定::8080/your-app/user/show

于 2013-09-26T11:47:56.990 回答
0
'/user/**':['ROLE_USER'],

反而

'/User/**':['ROLE_USER'],
于 2013-10-01T11:19:04.540 回答