grails 2.2.2中的springSecurity.denied.message
Posted
技术标签:
【中文标题】grails 2.2.2中的springSecurity.denied.message【英文标题】:springSecurity.denied.message in grails 2.2.2 【发布时间】:2013-09-26 11:20:49 【问题描述】:我正在尝试根据用户的角色为用户设置不同的主页
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...
【问题讨论】:
确保您的用户拥有 ROLE_USER 并有权访问重定向的操作。如果你评论了interceptUrlMap并且它可以工作,那可能是一个角色问题。 但是在我的代码中,当我通过管理员登录时,它会命中 Home 控制器... 我更新了我的问题,请检查一下 【参考方案1】:问题似乎与您的重定向调用有关:
redirect controller: 'UserController'
应该是
redirect controller: 'user'
因为在这种情况下,您遵循 url 约定::8080/your-app/user/show
【讨论】:
我写了用户...但它仍然给出相同的错误..但它仍然没有命中家庭控制器.. 你的用户有ROLE_USER? 是的...我的用户有一个角色 ROLE_USER【参考方案2】:'/user/**':['ROLE_USER'],
改为
'/User/**':['ROLE_USER'],
【讨论】:
以上是关于grails 2.2.2中的springSecurity.denied.message的主要内容,如果未能解决你的问题,请参考以下文章
在 Grails 和 SpringSecurity 中访问 Oracle Internet Directory (OID) 中的嵌套 LDAP 角色
Grails 中的 Spring Security 提供授权
Grails:弹簧安全插件 - 错误 springsecurity.GormPersistentTokenRepository
Grails:乐观锁定,StaleObjectStateException 与 Spring Security 会话中的域,更新计数器