gateway一直都正常运行,突然有一天报错,访问不了服务,报错日志如下
2025-01-06 07:37:37.364 [DiscoveryClient-CacheRefreshExecutor-0] ERROR com.netflix.discovery.DiscoveryClient - Cannot fetch registry from server
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
重启gateway之后又恢复正常,问题原因是:开启了actuator。导致暴露远程代码执行漏洞
2.0暴露端点的两种方式
方式1(一个个的去开启需要暴露的端点):
.properties文件配置示例
management.endpoint.env.enabled=true
management.endpoints.web.exposure.include=env
.yml文件配置示例
management.endpoint.env.enabled: true
management.endpoints.web.exposure.include: env
方式2(直接开启和暴露所有端点或者多个端点,代替的全部放开请使用*,或把需要开放的接口端点使用","隔开,如:env,health。):
.properties文件配置示例
management.endpoints.web.exposure.include=*
.yml文件配置示例
management.endpoints.web.exposure.include: "*"
参考:记录一次网关异常_error org.springframework.scheduling.support.tasku-CSDN博客
https://zhuanlan.zhihu.com/p/407710777
Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947) - LalaTina - 博客园