如何使用 ConstraintMapping 排除码头中的特定路径?
Posted
技术标签:
【中文标题】如何使用 ConstraintMapping 排除码头中的特定路径?【英文标题】:How to use ConstraintMapping to exclude a specific path in jetty? 【发布时间】:2021-12-29 13:16:44 【问题描述】:我有一个启用身份验证的约束/约束映射。但是,我需要从中排除一条不需要身份验证的路径(并且仅适用于 GET 请求)。
我创建了一个没有约束的约束映射:
ConstraintMapping exclude = new ConstraintMapping();
exclude.setPathSpec("/items/id/list");
exclude.setMethod("GET");
我对此的疑问是:
如何在有 id 参数的地方添加 pathSpec?我相信使用 setPathSpec("/items/id/list") 是行不通的。 如果我添加了 GET 方法,它是否只针对该端点的 GET 请求启用?【问题讨论】:
【参考方案1】:ConstraintMapping
是一个 servlet 概念。
PathSpec 仅支持来自 servlet 规范的 url-pattern
规则。
您的/items/id/list
声明看起来像一个基于 URI 模板的路径规范,Servlet 规范不支持它。
查看过去关于 servlet url-pattern 规则的答案...
https://***.com/a/14018272/775715
【讨论】:
以上是关于如何使用 ConstraintMapping 排除码头中的特定路径?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 validation-constraints.xml 中定义的验证注册自定义 ConstraintMapping