spring-cloud-starter-gateway引入spring-boot-admin-sample-reactive漏洞排查求助
解决Spring Cloud Gateway间接引入spring-boot-admin-sample-reactive漏洞问题
我能理解你现在的困扰——明明没直接引入这个示例模块,却被Nexus检测出漏洞,而且IDE里还找不到它的依赖路径。别着急,咱们一步步来排查和解决:
1. 精准定位依赖来源
Eclipse的依赖层级视图有时候会过滤掉一些间接依赖(比如测试范围、可选依赖),但Maven的命令行工具能帮你找到完整的依赖链。在项目根目录执行以下命令,专门查找spring-boot-admin-sample-reactive的引入路径:
mvn dependency:tree -Dverbose -Dincludes=de.codecentric:spring-boot-admin-sample-reactive
这个命令会输出该依赖是通过哪个父依赖间接引入的,大概率是spring-cloud-starter-gateway下的某个子组件意外拉取了这个示例模块。
2. 直接排除问题依赖
一旦找到依赖路径,你可以直接在spring-cloud-starter-gateway的依赖声明里添加排除规则,强制移除这个示例模块:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <exclusions> <exclusion> <!-- 排除有漏洞的示例模块 --> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-sample-reactive</artifactId> </exclusion> </exclusions> </dependency>
因为这是示例模块,本身不是Gateway运行必需的组件,排除后不会影响你的项目功能。
3. 检查Spring Cloud版本兼容性
你的Spring Boot版本是2.3.2.RELEASE,对应的Spring Cloud版本应该是Hoxton.SR9(Spring Boot与Spring Cloud的版本对应关系是严格绑定的)。如果你的${spring-cloud.version}没有明确指定,可能会拉取不兼容的版本,导致依赖解析出现异常。建议在pom里明确设置:
<properties> <spring-cloud.version>Hoxton.SR9</spring-cloud.version> </properties>
版本匹配能减少很多奇怪的依赖问题。
4. 验证排查结果
执行完以上步骤后,再运行一次Maven依赖树命令确认该依赖已被排除,然后重新提交项目到Nexus进行漏洞校验,应该就能通过了。
内容的提问来源于stack exchange,提问作者SpringGeek28
相关产品推荐
相关产品推荐

