grails 4 url root 映射不工作

grails 4 url mapping for root not working

在 url 映射中:

     "/$controller/$action?/$id?"{
                constraints {
                // apply constraints here
                }
     }
    "/index"(controller: 'home', action: 'index')
    "/"(controller: 'home', action: 'index')

如果用户使用根索引url,它会很好地重定向。

控制器 + 动作重定向正常。

但是根 ("/") 本身不会重定向到家庭控制器。

我也在使用 spring 安全性

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
    [pattern: '/',               access: ['permitAll']],
    [pattern: '/index',          access: ['permitAll']]
]

我缺少什么简单的东西?

最可能的原因是您没有在配置的 staticRules 中启用 permitAll /home/index。 Spring 安全性遵循悲观锁定方法,默认情况下拒绝访问所有 URL。

我在映射根目录时遇到了同样的问题,到目前为止我发现的唯一解决方法是用 uri: 替换控制器和操作,例如

"/"(uri: "/home/index") // in place of (controller: 'home', action: "/index")

对我来说,这是由于在 Grails 4.0.0 中引入 org.grails.plugins:grails-google-visualization:2.2.1 造成的。

除了禁用 grails-google-可视化插件外,没有找到解决方法。

似乎插件 modifies/overwrites UrlMapping.