我可以做一个 Gradle 依赖项的依赖项来强制一个版本吗?
Can i make a Gradle dependencies' dependency to force a version?
是否可以在 Gradle 中强制使用子依赖的版本?
场景:
我们正在使用 Dozer,它的最高版本是 5.5.1,它依赖于 commons-beanutils 1.9.1,不幸的是,我们的 Sonatype CLM/IQ 服务器检测到它有一个安全问题编号 CVE-2014-0114
描述:(Apache Commons BeanUtils,分布于 lib/commons-beanutils-1.8.0.jar in Apache Struts 1.x通过 1.3.10 和在其他需要 commons-beanutils 到 1.9.2 的产品中,不抑制 class 属性,这允许远程攻击者 "manipulate" ClassLoader 并通过class 参数,正如在 Struts 1.)
中将此参数传递给 ActionForm 对象的 getClass 方法所示
是否可以将其依赖版本更新为 1.9.3 以避免出现此安全漏洞?
代码:
dependencies {
providedCompile(
<other stuff>
[group: 'net.sf.dozer', name: 'dozer', version: '5.5.1']
<other stuff>
)
}
在你的build.gradle中:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.name == 'commons-beanutils') {
details.useTarget "commons-beanutils:commons-beanutils:1.9.3"
}
}
}
传递依赖版本控制解决方案有效,只是您需要为 Sonatype CLM 重建和刷新项目以检测更改。
是否可以在 Gradle 中强制使用子依赖的版本?
场景: 我们正在使用 Dozer,它的最高版本是 5.5.1,它依赖于 commons-beanutils 1.9.1,不幸的是,我们的 Sonatype CLM/IQ 服务器检测到它有一个安全问题编号 CVE-2014-0114
描述:(Apache Commons BeanUtils,分布于 lib/commons-beanutils-1.8.0.jar in Apache Struts 1.x通过 1.3.10 和在其他需要 commons-beanutils 到 1.9.2 的产品中,不抑制 class 属性,这允许远程攻击者 "manipulate" ClassLoader 并通过class 参数,正如在 Struts 1.)
中将此参数传递给 ActionForm 对象的 getClass 方法所示是否可以将其依赖版本更新为 1.9.3 以避免出现此安全漏洞?
代码:
dependencies {
providedCompile(
<other stuff>
[group: 'net.sf.dozer', name: 'dozer', version: '5.5.1']
<other stuff>
)
}
在你的build.gradle中:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.name == 'commons-beanutils') {
details.useTarget "commons-beanutils:commons-beanutils:1.9.3"
}
}
}
传递依赖版本控制解决方案有效,只是您需要为 Sonatype CLM 重建和刷新项目以检测更改。