0

我的 Spring Security Plugin 在 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"]
]

这些都没有解决我上面解释的问题。任何帮助是极大的赞赏。

谢谢,贾里德

4

1 回答 1

2

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

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

这允许用户访问 URLMappings 中的“/”映射,从而被转发到“/dashboard”。如果没有这个映射,'/' 就没有规则,我们默认阻止它,因此没有机会到达要转发的 URLMappings。

于 2012-06-15T03:38:09.363 回答