Grails 2 Spring Security Plugin - 成功登录后重定向到/ login / denied

时间:2012-06-14 20:36:32

标签: grails spring-security grails-plugin

我在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"]
]

这些都没有解决我上面解释过的问题。非常感谢任何帮助。

谢谢, 贾里德

1 个答案:

答案 0 :(得分:2)

答案是在interceptUrlMap中添加另一个条目:

grails.plugins.springsecurity.interceptUrlMap = [
    '/**': ["IS_AUTHENTICATED_FULLY"]
]

这允许用户访问URLMappings中的'/'映射,从而转发到'/ dashboard'。没有这个映射,没有'/'规则,我们默认阻止它,所以没有机会转发URLMappings。