我正在为用户尝试不同的主页,具体取决于其角色
grails.plugins.springsecurity.successHandler.defaultTargetUrl = "/home"
grails.plugins.springsecurity.securityConfigType="InterceptUrlMap"
grails.plugins.springsecurity.interceptUrlMap=[
....
....
'/User/**':['ROLE_USER'],
'/home/**':['ROLE_ADMIN','ROLE_USER'],
....
....
]
我设置成功处理程序控制器“HomeController”
在那个i重定向角色明智的主页
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 ...
答案 0 :(得分:0)
问题似乎与您的重定向呼叫有关:
redirect controller: 'UserController'
应该是
redirect controller: 'user'
因为在这种情况下你遵循网址::8080/your-app/user/show
答案 1 :(得分:0)
'/user/**':['ROLE_USER'],
代替
'/User/**':['ROLE_USER'],