gpt4 book ai didi

spring - Grails spring security defaultTargetUrl 路径错误

转载 作者:行者123 更新时间:2023-12-02 03:34:58 24 4
gpt4 key购买 nike

带有 Spring 安全性的 Grails 2.4 2 3RC

我的 Config.groovy 上有这个

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/': ['permitAll'],
'/index': ['permitAll'],
'/index.gsp': ['permitAll'],
'/**/js/**': ['permitAll'],
'/**/css/**': ['permitAll'],
'/**/images/**': ['permitAll'],
'/**/favicon.ico': ['permitAll']
]
grails.plugin.springsecurity.successHandler.defaultTargetUrl = "/home/index"

但这让我重定向到

assets/favicon.ico

我的 HomeController 就是这样

@Secured(['ROLE_ADMIN', 'ROLE_USER'])
def index() {
if (SpringSecurityUtils.ifAllGranted('ROLE_ADMIN')) {
redirect controller: 'admin', action: 'index'
return
}
}

然后我在我的 UrlMapping 中修改它:

"/"(controller: 'home', action:'index')

为什么我总是发送错误的路径?

更新:使用另一台计算机,它将我重定向到/asset/grails_logo.png

最佳答案

听起来您遇到的问题与我将 Grails 1.x 应用程序升级到 2.4.2 时遇到的问题类似。当您尝试访问受 Spring Security 授权规则保护的 URL/页面并且您未登录时,它会将您重定向到登录页面。成功登录后,它会将您重定向到您请求的 URL。在这种情况下,您的 favicon.ico 和 grails_logo.png 受到授权规则的保护,我猜是无意的,因此它将您重定向到登录页面。成功登录后,它会将您重定向到 favicon.ico 或 grails_logo.png URL,因为这是在授权失败时请求的 protected URL。相应地更改您的授权规则(如果您在两个位置都有 Assets ,则可能需要同时执行这两个操作):

如果您使用的是 Asset Pipeline 插件,请使用:

'/assets/**':     ['permitAll']

如果您正在使用类似资源 插件的东西,请使用:

'/css/**':     ['permitAll'],
'/js/**': ['permitAll'],
'/images/**': ['permitAll']

关于spring - Grails spring security defaultTargetUrl 路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24112632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com