如何使用 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

如何从 maven 项目中自动排除未使用的 jar 文件?

使用电子生成器构建电子时如何排除文件?

如何从声纳中排除不推荐使用的类

如何使用 ansible 排除文件系统

如何从表单中排除字段?