Я столкнулся с той же проблемой на моей работе, где у нас есть Windows
рабочие станции и NTLM2
прокси-сервер с аутентификацией.
Следующее решение отлично работает для меня.Преимущество этого решения в том, что оно может работать и с Maven, Git, IntelliJ IDE.
Рекомендованные шаги, которые необходимо выполнить, чтобы получить доступ через прокси-сервер NTLM2:
- Сначала вам необходимо скачать, настроить и запустить
Cntlm
прокси на вашем компьютере. - Запустить Cntlm на вашем локальном хосте.Этот прокси-сервер перенаправит все ваши локальные не прошедшие проверку подлинности запросы HTTP / HTTPS на прокси-сервер компании в качестве аутентифицированных запросов.
- Настройте Maven, Git, IntelliJ, Eclipse и т. Д. Для использования локального прокси на
localhost:3128
.Вам не нужно настраивать аутентификацию здесь.
Подробности:
- Скачать Cntlm прокси с здесь .
Тип cntlm.exe -H -d your_domain -u your_username
.Он спросит ваш пароль.Введите его, и Cntlm выдаст вам хэши, что-то вроде этого:
Password:
PassLM 4E9C185932FER43543RWEFER33R4R34C
PassNT 6E9F1254353RDR34RFSDWER3443RDC9A
PassNTLMv2 43534RFWDWE3434RWFWER434C4FA224F
Отредактируйте / проверьте свой cntlm.ini
файл
Username <your-domain-username>
Domain <windows-donain-name>
Auth NTLMv2
PassNTLMv2 <hash>
Proxy <proxy-host:port>
NoProxy localhost, 127.0.0.*, 10.*, 192.168.*
Listen 3128
Запустите Cntlm с помощью простого сценария: start-proxy.cmd
cd %CNTLM_HOME%
rem verbose mode
cntlm -v -c cntlm.ini
rem verbose with logfile
rem cntlm -v -c cntlm.ini -T %CNTLM_HOME%\nctlm.log
rem test configuration
rem cntlm -c cntlm.ini -I -M http://google.com
Останов сервера Cntlm: stop-proxy.cmd
taskkill /IM cntlm.exe /F
Затем вы можете создать два cmd-файла, которые изменяют конфигурацию Maven согласно вашему вкусу:
mvn-internet.cmd
call java8.cmd
del %MAVEN_HOME%\conf\settings.xml
copy %MAVEN_HOME%\conf\settings.xml.internet %MAVEN_HOME%\conf\settings.xml
mvn-intranet.cmd
call java8.cmd
del %MAVEN_HOME%\conf\settings.xml
copy %MAVEN_HOME%\conf\settings.xml.nexus %MAVEN_HOME%\conf\settings.xml
settings.xml.internet
<settings xmlns=...>
<localRepository>...</localRepository>
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>localhost</host>
<port>3128</port>
<nonProxyHosts>locahost</nonProxyHosts>
</proxy>
</proxies>
</settings>
settings.xml.nexus
<settings>
<localRepository>...</localRepository>
<mirrors>
<mirror>
<id>local-lalm</id>
<name>local-lalm</name>
<url>https://nexus.xxx...</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>use-local-repo</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>LALM-global</id>
<url>https://nexus.xxx...</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>LALM-global</id>
<url>https://nexus.xxx...</url>
</pluginRepository>
</pluginRepositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</profile>
</profiles>
</settings>
То же самое с Git
git-internet.cmd
call java8.cmd
rem git config --global http.proxy username:password@localhost:3128
git config --global http.proxy localhost:3128
git-intranet.cmd
call java8.cmd
git config --global --unset http.proxy
Cunfigure IntelliJ
Настройка IntelliJ для использования прокси на локальном хосте: 3128 Настройка Maven в IntelliJ: измените настройки
Maven home directory
и
User settings file
.
После этого вы будете использовать ту же конфигурацию Maven в IntelliJ и командной строке, чтобы все мыслило работало одинаково из IDE и командной строки.
Вы можете использовать свои новые файлы cmdпереключаться между использованием прокси-сервера или без него на лету.
Эта конфигурация занимает 10 минут.и после этого вы можете забыть эту проблему с прокси.