Spring Security antMatchers UUID

时间:2017-06-20 16:22:50

标签: java spring spring-security

我想禁用具有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

如何解决问题?

1 个答案:

答案 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之后允许一些内容。