任何 URL 不匹配的 Jetty ConstraintMapping?

Jetty ConstraintMapping for any URL that doesn't match?

我正在尝试使用 ConstraintSecurityHandler 来保护我的应用程序。到目前为止效果很好。但是,我想从中排除某些路径——特别是我希望以 /api/ 开头的任何路径忽略常规 security/login(它由 API 标记保护)。我想要

/* (that doesn't match one of the below) Requires view role /api/* Skips security handler /admin/* Requires admin role

有没有简单的方法可以做到这一点?

ConstraintSecurityHandler实现了Servlet Spec的安全约束机制。

它只是一个受约束的路径列表。如果恰好重叠,则第一个约束获胜。

Servlet 规范约束没有概念 "exclude" 来自约束的路径。

您可以尝试将 /api/* 实现为没有 Constraint(没有角色、未验证等)的 ConstraintMapping