我在Spring Grails 2.0.4中成功运行了Spring Security Plugin。如果我转到“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"]
]
这些都没有解决我上面解释过的问题。非常感谢任何帮助。
谢谢, 贾里德
答案 0 :(得分:2)
答案是在interceptUrlMap中添加另一个条目:
grails.plugins.springsecurity.interceptUrlMap = [
'/**': ["IS_AUTHENTICATED_FULLY"]
]
这允许用户访问URLMappings中的'/'映射,从而转发到'/ dashboard'。没有这个映射,没有'/'规则,我们默认阻止它,所以没有机会转发URLMappings。