如何在 spring 表达式语言中获取请求 url?

How can I get request url in spring expression language?

如何获得 spring 表达式语言的请求 url?

这是我在 spring 安全配置中的一段代码:

.antMatchers("/users/location/**").access("principal.locations.contains('locationIdFromUrl')")

我的表达式有效,但我不知道如何在 /location 之后获取 url 变量。 我需要这个变量将它传递给 contains 方法。

无法在 Config Class 访问 URL 参数,您可以使用过滤器逻辑地执行此任务。

伪代码

.addFilterBefore(new DeviceResolverRequestFilter(), LocationAccessFilter.class)

其中LocationAccessFilter包含位置访问逻辑。

好的,我解决了我的问题。

antMatchers("/users/location/{id}/**").access("principal.locations.contains(#id)")