如何使用 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 排除码头中的特定路径?的主要内容,如果未能解决你的问题,请参考以下文章