Grails 2 Spring Security Plugin - 成功登录后重定向到 /login/denied
Posted
技术标签:
【中文标题】Grails 2 Spring Security Plugin - 成功登录后重定向到 /login/denied【英文标题】:Grails 2 Spring Security Plugin - Redirects to /login/denied after successful login 【发布时间】:2012-06-17 22:50:11 【问题描述】:我的 Spring Security 插件在 Grails 2.0.4 中大部分时间都可以成功运行。如果我转到页面“localhost:8080/dashboard”,我将被重定向到登录屏幕。当我成功登录时,我被重定向到“/dashboard”。
我遇到的问题是,如果我只是转到“localhost:8080/”而不向 URL 添加任何控制器。如果我这样做,那么无论我是否成功登录,我都会被重定向到“/login/denied”。如果我此时尝试转到“/dashboard”,它将工作,因为我是成功登录的用户。
我的问题是如何更改登录后重定向到的默认屏幕。这是我尝试过的。如果我缺少任何东西,请告诉我。除了实际的重定向之外,一切似乎都在工作。
尝试在 URLMappings.groovy 中进行更改
static mappings =
"/"(controller: "dashboard")
尝试在 Config.groovy 中进行更改:
grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/dashboard'
grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
grails.plugins.springsecurity.interceptUrlMap = [
'/dashboard/**': ["IS_AUTHENTICATED_FULLY"],
'/js/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
'/css/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
'/images/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
'/login/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
'/logout/**': ["IS_AUTHENTICATED_ANONYMOUSLY"]
]
这些都没有解决我上面解释的问题。非常感谢任何帮助。
谢谢, 贾里德
【问题讨论】:
【参考方案1】:答案是在我的 interceptUrlMap 中添加另一个条目:
grails.plugins.springsecurity.interceptUrlMap = [
'/**': ["IS_AUTHENTICATED_FULLY"]
]
这允许用户访问 URLMappings 中的“/”映射,从而被转发到“/dashboard”。如果没有这个映射,'/' 就没有规则,我们默认阻止它,所以没有机会到达要转发的 URLMappings。
【讨论】:
以上是关于Grails 2 Spring Security Plugin - 成功登录后重定向到 /login/denied的主要内容,如果未能解决你的问题,请参考以下文章
ClassNotFoundException: SimpleGrantedAuthority - Grails 2.4.2 和 Spring Security
Spring Security UI 和 grails 2.0
grails-spring-security-oauth2-provider ClientCredentials filter no processing /oauth/token
Grails spring-security-oauth-google:如何设置