为何ArangoDB的javascript.endpoints-allowlist仅.*配置生效?
问题原因分析
- ArangoDB的
--javascript.endpoints-allowlist配置,是对请求目标的主机+端口段(也就是URL里去掉http:///https://之后的部分)做正则匹配,而非包含协议头的完整URL。 - 你要请求的地址是
http://service:3000/path,ArangoDB实际用来匹配的字符串是service:3000,这里面根本没有http字样,所以你写的".*http.*"正则完全匹配不上,请求自然被拦截。 - 而
".*"是通配任意字符串,能匹配service:3000,所以请求能正常走通。
可行的配置方案
- 如果要允许所有外部请求(生产环境谨慎使用,存在安全风险):继续用
--javascript.endpoints-allowlist ".*" - 仅允许
service:3000这个目标:配置--javascript.endpoints-allowlist "service:3000" - 允许所有包含
service字样的主机:配置--javascript.endpoints-allowlist ".*service.*"
内容的提问来源于stack exchange,提问作者Galdor
相关产品推荐
相关产品推荐

