V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NULL2020
V2EX  ›  Java

Springboot 拦截器路径匹配问题请教

  •  
  •   NULL2020 · 2020-09-30 14:57:35 +08:00 · 2026 次点击
    这是一个创建于 1543 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有这样的接口路径:

    GET  /user/123
    GET  /user/**
    

    拦截器在设置 excludePathPatterns 时,有没有办法匹配以数字结尾的路径?

    再进一步,假如有接口路径

    GET    /user/123
    POST  /user/123
    

    有没有办法只设置 GET /user/123 放行,而 POST /user/123 被拦截?

    6 条回复    2020-09-30 16:23:26 +08:00
    NULL2020
        1
    NULL2020  
    OP
       2020-09-30 15:19:44 +08:00
    问题一找到办法了
    PathPatterns 设置为:/user/{^\d+$}

    问题二应该是没法了,还是得用代码
    huifer
        2
    huifer  
       2020-09-30 15:22:11 +08:00
    httprequest 获取请求方式, 获取路由地址, 正则过滤字符串.
    THESDZ
        3
    THESDZ  
       2020-09-30 15:24:58 +08:00
    问题 2 不是设置 @GetMapping,@PostMapping,拆成两个接口?
    NULL2020
        4
    NULL2020  
    OP
       2020-09-30 15:29:30 +08:00
    @THESDZ #3 是两个接口的,就是要放行 GET,拦截 POST,简单配置应该是不行的了
    THESDZ
        5
    THESDZ  
       2020-09-30 15:40:12 +08:00
    @NULL2020 #4 自定义拦截器,拓展 PathPatterns 中的功能
    zhady009
        6
    zhady009  
       2020-09-30 16:23:26 +08:00
    第一个可以用配置解决 第二个拦截器里写代码 HandlerMethod 可以知道是不是 GetMapping 或者 PostMapping 就行了 如果是 RequestMapping 就获取下 method 里面的值判断下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:36 · PVG 18:36 · LAX 02:36 · JFK 05:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.