Spring Expression语言-基于url的值映射基于不带主机和端口的路径

问题描述

我正在尝试在SpEL(Spring表达式语言)中映射值。

我需要根据网址路径映射某些值

https://www1.qa4.testsite.com/sso-login : External
https://www1.qa4.testsite.com/www : normal
https://www.testsite.com/main/personal : Marketing

除了检查整个字符串值之外,实现此值的表达式是什么。需要表达以仅检查路径(“ sso-logn”,“ www”,“ main / personal”)

#map(#requestInfo.httpReferer,{'https://www1.qa4.testsite.com/sso-login': 'External','https://www.testsite.com/main/personal': 'Marketing','https://www1.qa4.testsite.com/www': 'normal'},'normal')

解决方法

有一个有效的表达方式

#map(#requestInfo?.httpReferer?.split("m/")?.$[true],{'sso-login': 'External','www': 'Marketing','main/personal': 'Normal'},'Normal')