我想禁用具有spring安全性的资源的身份验证。资源url包含java uuid。我的匹配器与uuid不匹配。
web.ignoring().antMatchers(HttpMethod.GET, "/tobaccos/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$");
此代码段匹配/ tobaccos后面的所有内容。但我只想匹配例如/ tobaccos / 4da42fa2-4fad-4c7f-af77-1d7890741009
如何解决问题?
答案 0 :(得分:1)
您需要使用regexMatchers()
来使用正则表达式(如您的情况),而不是antMatchers()
(期望Ant Patterns)。
此外,中间似乎不需要^
。
web.ignoring().regexMatchers(HttpMethod.GET, "/tobaccos/[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$");
这将匹配任何/ tobaccos / $ UUID URL(以$ UUID结尾)。
web.ignoring().regexMatchers(HttpMethod.GET, "/tobaccos/[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/.*");
也会在UUID之后允许一些内容。