在Grails 3.3中,我使用了来自spring-security-rest:2.0.0.M2插件的RestOauthController自定义扩展,我在UrlMappings.groovy中覆盖了它,如下所示:
"/oauth/access_token"(controller: "restOauthMy", action: "accessToken", method: "POST")但是,在升级到Grails 4之后,对/oauth/access_token的POST请求现在指向原来的控制器,我的RestOauthMyController.accessToken()永远不会被调用。有没有办法摆脱原始的URL映射?更广泛地说,是什么决定了Grails中冲突URL映射的优先级?
发布于 2021-04-03 01:25:51
我发现了一种在BootStrap.groovy中动态添加URL映射的有效解决方法:
def grailsUrlMappingsHolder
def init = {
grailsUrlMappingsHolder.addMappings {
"/oauth/access_token" (controller: "restOauthMy", action: "accessToken", method: "POST")
}
}这样,动态映射似乎优先,我的重写代码就会执行。
不过,我非常想知道如何正确地做到这一点。
发布于 2021-04-04 07:34:34
因此,在查看Grails 4.0代码(和其他插件)时,这似乎是一个特定于spring-security-rest的非常硬编码的端点,该端点已停止使用并在内部引入
所以,在他们解决他们的问题之前,你有最好的解决方法。不过..。这是一个他们还没有修复的bug,因为功能在3.0中工作,而spring-security-rest是一个单独的插件,现在它被改写了!
https://stackoverflow.com/questions/66920265
复制相似问题