Могу ли я сделать зависимость Gradle зависимостей, чтобы заставить версию? - PullRequest
0 голосов
/ 01 ноября 2018

Можно ли принудительно использовать версию подчиненной в 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 в Apache Struts 1.x через 1.3.10 и в других продуктах, требующих commons-beanutils до 1.9 .2, не подавляет свойство класса, которое позволяет удаленным злоумышленникам «манипулировать» ClassLoader и выполнять произвольный код через параметр класса, что продемонстрировано передачей этого параметра в метод getClass объекта ActionForm в Struts 1.)

Можно ли обновить версию зависимости до 1.9.3, чтобы избежать этой уязвимости?

Код:

dependencies {
  providedCompile(
     <other stuff>
     [group: 'net.sf.dozer', name: 'dozer', version: '5.5.1']
     <other stuff>
  )
}

1 Ответ

0 голосов
/ 02 ноября 2018

В вашем билде: gradle:

configurations.all {
  resolutionStrategy.eachDependency { DependencyResolveDetails details ->
   if (details.requested.name == 'commons-beanutils') {
      details.useTarget "commons-beanutils:commons-beanutils:1.9.3"
   }
  }
}

Работает решение для управления версиями транзитивных зависимостей, просто вам нужно перестроить и обновить проект для Sonatype CLM, чтобы обнаружить изменения.

...