如何在katharsis尝试解析过滤器参数之前强制进行URL解码? %5B%5D

时间:2015-11-20 14:46:16

标签: java spring ember-data

我正在使用katharsis 2.0.0构建基于JSON:API的服务。这是在spring-boot 1.3.0中完成的,用于Ember 2.0(ember-data)。 Ember将滤波器参数正确格式化为:

  

/资源/过滤器[ID] = XXXX

网址将其正确编码为:

  

/资源/过滤%5Bid%5D = XXXXX

然而,katharsis抱怨它没有正确格式化,并且没有URL解码参数。有没有办法:

  1. 在请求到达katharsis
  2. 之前,请求URL解码
  3. 让ember-data不对[和]字符进行url编码?
  4. 我认为这实际上可能是katharsis中的一个错误,但需要解决方法。

1 个答案:

答案 0 :(得分:0)

它被认为是一个错误,应该修复。解决方法是使用覆盖getRequestQueryString方法的方法扩展ServletKatharsisInvokerFilter,使用一个执行URLDecoder.decode的方法。然后创建一个JsonApiFilter,它将AbstractKatharsisFilter扩展为Component(BeanFactoryAware)并覆盖createKatharsisInvokerContext以使用新的调用过滤器。

katharsis-servlet和katharsis-spring v2.0.3已经发布,带有固定的查询参数。

https://github.com/katharsis-project/katharsis-core/issues/167

相关问题