首页 > 其他分享 >uri匹配

uri匹配

时间:2024-12-30 22:09:34浏览次数:1  
标签:匹配 路径 uri user login page backend

AntPathMatcher 是 Spring 框架提供的一个用于路径匹配的工具类,主要用于匹配 URL 路径。在 Spring 中,AntPathMatcher 被广泛用于 URL 路径的模式匹配,如 Spring Security、Spring MVC 等。

AntPathMatchermatch() 方法遵循一定的匹配规则,它支持通配符(wildcards)来匹配路径。下面是 AntPathMatcher.match() 方法的匹配规则和相关示例。

1. *:匹配路径中的一个部分

  • * 匹配 URL 中的一个路径部分(以 / 为分隔符),即一个单词或一段路径(不包含 /)。

  • 示例:

    • /backend/* 可以匹配 /backend/login/backend/logout,但不能匹配 /backend/page/login
    • /backend/*/login 可以匹配 /backend/page/login/backend/user/login,但是不能匹配 /backend/login

2. **:匹配多层路径

  • ** 匹配零个或多个路径部分,适用于路径的任意深度。它可以匹配路径中的任意层级。

  • ** 可以放在路径的两端或中间。

  • 示例:

    • /backend/** 可以匹配 /backend/login/backend/page/login/backend/page/other/login 等任意深度的路径。
    • /backend/**/login 可以匹配 /backend/page/login/backend/user/login/backend/page/other/login 等路径。
    • /backend/**/login/** 可以匹配 /backend/page/login/abc/backend/page/other/login/abc/xyz 等路径。

3. ?:匹配一个字符

  • ? 用于匹配路径中的一个字符,表示任意单个字符(但不能是路径分隔符 /)。

  • 示例:

    • /backend/??/login 可以匹配 /backend/xx/login/backend/ab/login,但是不能匹配 /backend/xxx/login

4. 普通字符:

  • 普通字符(如字母、数字、下划线等)会精确匹配相应的字符。

  • 示例:

    • /backend/login 会精确匹配 /backend/login,不会匹配其他路径。

5. 路径分隔符 /

  • / 是路径的分隔符,路径模式中的 / 必须严格匹配对应的路径分隔符。
  • 路径中的 / 表示层级的划分,通常一个路径段由 / 连接多个部分。

6. 通配符的组合

  • *** 可以组合使用以适应更复杂的匹配需求。例如,/backend/*/user/** 可以匹配 /backend/page/user/login/backend/other/user/profile 等路径。

匹配规则总结

  • *:匹配一个路径部分(不含 /)。
  • **:匹配任意层级的路径。
  • ?:匹配单个字符。
  • 普通字符:精确匹配路径字符。

具体示例

  • "/backend/**":匹配任何以 /backend/ 开头的路径,包括 /backend/login/backend/page/login/backend/page/other/login
  • "/backend/*/login":匹配 /backend/xx/login/backend/ab/login,但不能匹配 /backend/page/login
  • "/backend/**/login":匹配 /backend/page/login/backend/user/login/backend/page/other/login 等路径。
  • "/backend/??/login":匹配 /backend/xx/login,但不能匹配 /backend/xxx/login
  • "/backend/*/user/*":匹配 /backend/page/user/login/backend/admin/user/profile 等路径。

标签:匹配,路径,uri,user,login,page,backend
From: https://www.cnblogs.com/zyb-luckey/p/18642556

相关文章

  • SpringSecurity定制化开发(二)JWT登录
            JWT全称为JSONWebTokens,是一种开放标准(RFC7519),它定义了一种紧凑且独立的方式,用于在各方之间以JSON对象的形式安全地传输信息,非常适合用作用户登录的身份验证凭证。JWT的验证基于密钥,因此不需要在服务器端存储用户信息,这表明它是一种无状态的身份认证机制,可......
  • 正则匹配大全(大多数很实用)
    570个Linux常用命令速查手册abApache 服务器的性能测试工具accept 指示打印系统接受发往指定目标打印机的打印任务ack 比grep好用的文本搜索工具alias 定义或显示别名apachectl Apache服务器前端控制工具apkAlpine Linux下的包管理工具apropos 在whatis数据库中查找字符串......
  • Python 正则表达式进阶用法:边界匹配
    Python正则表达式进阶用法:边界匹配正则表达式是一种强大的工具,用于处理文本中的模式匹配。它广泛应用于文本查找、替换、数据清洗等任务。在学习了正则表达式的基础知识后,掌握更高级的用法将使得正则表达式的应用更加灵活。边界匹配(BoundaryMatching)是正则表达式中的一种重要进......
  • NLP论文速读(NeurIPS 2024)|树状结构两阶段推荐系统的泛化误差边界Generalization Err
    论文速读|GeneralizationErrorBoundsforTwo-stageRecommenderSystemswithTreeStructure论文信息:简介:   本文讨论的是两阶段推荐系统(Two-stageRecommenderSystems)在具有树结构的情况下的泛化误差界限。两阶段推荐系统在许多在线服务中扮演着重要角色,例......
  • 我的AI工具箱Tauri版-ZoomImageSUPIR图像超细节缩放
    本教程基于自研的AI工具箱Tauri版进行ZoomImageSUPIR图像超细节缩放。ZoomImageSUPIR图像超细节缩放是一款专为图像处理优化的工具,支持图像的高精度放大与缩小操作,满足多场景需求。通过集成SUPIR(Super-resolutionImageProcessingwithIntelligentRefinement)技术,能够......
  • 我的AI工具箱Tauri版-ZoomImage8K图像8K放大
    本教程基于自研的AI工具箱Tauri版进行ZoomImage8K图像8K放大。ZoomImage8K图像8K放大是基于自研AI工具箱Tauri版开发的高性能图像放大工具,支持将低分辨率图像智能处理为8K超高清图像,适用于多种场景需求。通过精细化像素重建和深度学习算法,保证图像放大后细节清晰、......
  • 我的AI工具箱Tauri版-RemoveChangeBG抠图换背景
    本教程基于自研的AI工具箱Tauri版进行RemoveChangeBG人物抠图换背景。RemoveChangeBG人物抠图换背景是基于自研的AI工具箱Tauri版开发的一款强大图像处理工具。支持单张图片及批量处理模式,满足不同用户的多样化需求。通过大模型智能算法,精准识别并抠取人物或物品主体轮廓,......
  • lin.security提权靶场渗透
    声明!学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B......
  • 【STS测试】failure of android.security.sts.KernelLtsTest#testRequiredKernelLts_W
    总结:获取以下信息:1.安全补丁版本spl:2024-12-052.kernel版本5.15.1483.确认spl+6个月是否在【kernel-lifetimes.xml】中对应版本的生命周期之内,如果不在,则报出异常逻辑:确保安全补丁版本+6个月之后,仍旧在kernel的生命周期之内。也就是kernel版本该升级就升级吧。----------......
  • 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第
    如果needle不是haystack的一部分,则返回-1示例1: 输入:haystack="sadbutsad",needle="sad"输出:0解释:"sad"在下标0和6处匹配。第一个匹配项的下标是0,所以返回0。示例2: 输入:haystack="leetcode",needle="leeto"输出:-1解释:"lee......