【发布时间】:2011-04-11 16:31:11
【问题描述】:
是否有任何简单的方法可以在 JAX-RS Web 服务中提供不区分大小写的 URL?这样做的目标是生成一个“宽松接受器”的 Web 服务。1
我想可以使用.to[Lower|Upper]Case()s 所有传入 URL 的过滤器来做到这一点。不幸的是,这种实现需要程序员遵守纪律/一致性,以确保应用程序中所有硬编码的 URL 字符串都是严格的 [小写|大写]。
另外,我还不知道 JAX-RS 类似于 servlet 过滤器。
如果重要的话,我将使用 Jersey 作为我的 JAX-RS 实现。
1如,“对你所接受的要宽容,对你所生产的东西要严格”(不记得出处)
【问题讨论】:
-
您可以将 servlet 过滤器放在 JAX-RS 引擎前面(或者您可以使用 CXF;这就是我通过 Spring Security 的挂钩处理我的安全性的方式)。
-
Postel 定律en.wikipedia.org/wiki/Robustness_principle 但是,服务器应该使用超媒体提供客户端要遵循的 URL,因此“严格的生产内容”应该适用于此。 HTTP 规范 RFC 2616 规定,除了方案和主机之外,http URL 应该区分大小写。
-
@Darrel:谢谢你的链接,你说得很好。我去看看楼上的人怎么说。