You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ant模式仅匹配含数值类型@PathVariable的接口路径?

解决方案

你可以通过给路径变量增加正则约束的Ant模式实现需求,修改后的匹配规则如下:

"/noun1/noun2/{id:\\d+}/**"

原理解释

  • Spring 内置的 AntPathMatcher 支持对路径变量追加正则校验,语法为 {变量名:正则表达式}。你场景中id是数值类型,用\\d+即可匹配1个及以上的纯数字字符。
  • 调整规则后,只有路径第三段为纯数字的请求才会命中该安全规则,/noun1/noun2/noun3/verb5这类第三段为字符串的路径会自动被过滤,不会触发匹配。如果你的id支持负数值,把正则调整为-?\\d+即可。

其他可选方案

如果不想使用正则约束,也可以调整安全规则的优先级:

  1. 先为不带id的路径单独配置对应规则:/noun1/noun2/noun3/**
  2. 再配置你原来的/noun1/noun2/{id}/**规则

Spring Security的路径规则是从上到下按顺序匹配,先匹配到的规则优先生效,也能避免id路径规则误匹配到noun3的路径。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:15:03