正则表达式与antMatcher URL模式不匹配

时间:2019-07-19 20:35:07

标签: java regex spring-security

我试图忽略身份验证中的url我尝试了多种不同的模式,但是java似乎无法识别它们。我的配置如下:

  @Override
  public void configure(WebSecurity web) throws Exception {
    super.configure(web);
    web.ignoring().antMatchers(
            "/api/pies.*active=true");
  }

我要匹配并具有弹簧安全性忽略的字符串是这样的: http://“ someEnv” /“ somePath” / api / pies?active = true

但是,无论我尝试使用哪种通配符组合,它都不匹配。 匹配必须具有?active = true

下面是方法def:

    @GetMapping()
    public ResponseEntity<List<PieResponseDto>> getPies(@RequestParam(name = "active") Boolean active) 

下面是类def:


@RestController
@RequestMapping(path = "/api/pies", produces = MediaType.APPLICATION_JSON_VALUE)

1 个答案:

答案 0 :(得分:1)

使用.regexMatchers代替.antMatchers,然后尝试使用此正则表达式:

^[a-zA-Z:\/.]*pies\?active=true$

有很多用于正则表达式的在线工具。您可以尝试以下一种示例:online regex tester