【发布时间】:2013-12-13 07:55:29
【问题描述】:
我正在使用 Grails 2.1.5 和 Spring Security Core 插件。 我重写了 WebSecurityExpressionRoot 以将 hasPermission 方法的 2 个签名添加到 Web 表达式范例。 此方法通过 applicationContext 中的名称委托给类,并使用请求作为参数和任意字符串调用它们,以便在需要时提供更多详细信息。
在我的委托类中,我需要能够访问参数以评估用户是否可以访问所请求的资源,这很好,但请求尚未包含从 UrlMappings 定义的变量。
我尝试从 applicationContext 获取 grailsUrlMappingsHolder,但是当我使用有效 uri 调用它的 match 方法时,我什么也得不到。
我的时间不多了,如果没有有效的请求参数,我可能不得不自己解析 request.getRequestURI() 以尝试推断 id,但这不会在 id 不是最后一个的地方映射 url。
我真的不想在这里重新发明轮子,我不想错过充分利用 UrlMappings 的潜力,但他们定义的变量(在我的情况下)在我进入控制器之前不可用。
【问题讨论】:
-
如果我没理解错,您需要访问隐藏在 url 中的参数。如果你定义像 /some/url/$myParam 这样的 url,你应该在 params 对象中有 myParam