【发布时间】:2017-12-05 16:35:40
【问题描述】:
我们在 Spring Web 应用程序中使用 javax.servlet.http.HttpServlet 类的实现作为错误页面(在 web.xml 中定义),以过滤错误信息,发送给我们 API 的用户以确保安全原因。
最近,我们还必须处理对 API 的 PATCH 请求。由于 HttpServlet 是使用 HTTP 1.1 版实现的,因此它不支持 PATCH 请求(“PATCH”字符串作为请求方法名称)。如果我们要添加功能,我们必须覆盖整个 HttpServlet 实现,这对我们也有负面的安全含义。
是否有开箱即用的方式来实现我们正在尝试的目标,或者我们是否必须切换到另一个实现(也可行)?
【问题讨论】:
-
能否升级到支持 PATCH 的 HTTP 版本?如果不是,那么实现自己是唯一的选择,即使您使用的是 3rd 方库。
-
如果您的服务器在 Allow 或 Access-Control-Allow-Methods 标头中不包含 PATCH,则客户端不应发送 PATCH。
-
它确实包含 PATCH 并且客户端应该发送它。我们为 servlet 使用默认的 java 库,它是为 HTTP 1.1 实现的