【问题标题】:How can I disable Grails createLink codec (encoding)?如何禁用 Grails createLink 编解码器(编码)?
【发布时间】:2013-09-14 05:37:20
【问题描述】:

将 Grails 从 2.2.0 更新为 2.2.4
之前:http://localhost:8180/sub:favorites
之后:http://localhost:8180/sub%3Afavorites

如您所见,Grails 默认对 URL 的参数进行编码。如何禁用它并手动对其进行编码?

【问题讨论】:

  • 相信您愿意更改编码设置 (stackoverflow.com/questions/1337464/…
  • 从 2.2.0 更新到 2.2.5 后,我遇到了完全相同的问题。我的解决方案(目前)将手动解码 URL,如下面的@fedor-belov 所述。

标签: security grails encoding


【解决方案1】:

很有可能有更简单的方法。但如果没有,您可以执行以下操作:

Grails 注册了一个名为 grailsLinkGenerator 的 bean。此 bean 用于在应用程序中创建链接(createLink(..)<g:createLink />)。我认为默认实现是CachingLinkGenerator,它是DefaultLinkGenerator 的子类,它再次实现了接口LinkGenerator

您可以扩展其中一个类并覆盖 resources.groovy 中的 bean:

 grailsLinkGenerator(YourLinkGenerator) {
   ..
 }

【讨论】:

  • 自 2.2.2 起,此行为在 RegexUrlMapping 类、方法 encode 中硬编码。我已经创建了更改它的票 - jira.grails.org/browse/GRAILS-10477 。目前解决此问题的唯一方法是手动解码 URL
猜你喜欢
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
相关资源
最近更新 更多