Používanie Maven za proxy

1. Úvod

V tomto výučbe sa chystáme nakonfigurovať Maven tak, aby pracoval za proxy serverom - bežná situácia v prostrediach, kde sa nepripojíme priamo k internetu.

V našom príklade náš server proxy beží na stroji „proxy.baeldung.com“ a počúva požiadavky servera proxy cez HTTP na porte „80“. Použijeme tiež niektoré interné stránky na adrese internal.baeldung.com, kde nepotrebujeme používať proxy server.

2. Konfigurácia servera proxy

Najprv, nastavme základnú konfiguráciu proxy servera bez akýchkoľvek poverení.

Upravme náš Maven nastavenia.xml sa zvyčajne nachádzajú v našom ‘/.m2 ′ adresár. Ak tam ešte nie je, môžeme ho skopírovať z globálneho nastavenia na ‘/ conf ' adresár.

A teraz vytvorme vstup dovnútra časť:

  proxy.baeldung.com 80 

Pretože používame aj miestny web, ktorý nemusí prechádzať cez proxy server, uveďme to v pomocou znaku „| samostatný zoznam s našim localhost:

internal.baeldung.com | localhost | 127. * | [:: 1] 

3. Pridanie poverení

Keby náš proxy nebol zabezpečený, to je všetko, čo by sme potrebovali; náš je však, takže pridajme naše poverenia do definície proxy:

baeldung changeme 

Ak ich nepotrebujeme, nepridávame položky používateľského mena a hesla - aj prázdne - ak ich budete mať k dispozícii, keď ich proxy nebude chcieť, môže to spôsobiť odmietnutie našich požiadaviek.

Naša minimálna overená konfigurácia by mala teraz vyzerať takto:

  proxy.baeldung.com 80 baeldung changeme internal.baeldung.com | localhost | 127. * | [:: 1] 

Teraz, keď spustíme mvn príkaz prejdeme cez proxy, aby sme sa pripojili k stránkam, ktoré sledujeme.

3.1. Nepovinné položky

Dajme tomu voliteľné id „BaeldungProxy_Authenticated“ na uľahčenie referencie pre prípad, že by sme niekedy potrebovali zmeniť proxy:

BaeldungProxy_Authenticated

Teraz, ak máme ďalší server proxy, môžeme pridať ďalšiu definíciu servera proxy, ale aktívny môže byť iba jeden. V predvolenom nastavení použije Maven prvú aktívnu definíciu proxy, ktorú nájde.

Definície servera proxy sú predvolene aktívne a získavajú implicitnú definíciu:

pravda

Ak by sme chceli urobiť z iného proxy aktívneho, deaktivovali by sme náš pôvodný záznam nastavením na nepravdivé:

nepravdivé

Predvolená hodnota Maven pre protokol proxy je HTTP, ktorý je vhodný pre väčšinu prípadov. Ak náš server proxy používa iný protokol, deklarujeme to tu a nahradíme ho http s protokolom, ktorý náš proxy server potrebuje:

http

Toto je protokol, ktorý používa proxy server - protokol našich požiadaviek (ftp: //, //, //) je od tohto nezávislý.

A takto vyzerá naša rozšírená definícia servera proxy, vrátane voliteľných prvkov:

  BaeldungProxy_Authenticated true http proxy.baeldung.com 80 baeldung changeme internal.baeldung.com | localhost | 127. * | [:: 1] 

To je teda všetko pre náš základný záznam proxy, ale je to pre nás dostatočne bezpečné?

4. Zabezpečenie našej konfigurácie

Povedzme, že jeden z našich kolegov chce, aby sme im zaslali našu konfiguráciu servera proxy.

Nie sme príliš nadšení posielať svoje heslo vo formáte obyčajného textu, takže pozrime sa, ako ľahko Maven umožňuje šifrovanie našich hesiel.

4.1. Vytvorenie hlavného hesla

Najskôr si zvoľte hlavné heslo a povedzte „te! St! Ma $ ter“.

Teraz zašifrujme si svoje hlavné heslozadaním na výzvu, keď spustíme:

mvn --encrypt-master-heslo Hlavné heslo: 

Po stlačení klávesu Enter sa medzi zloženými zátvorkami zobrazí naše šifrované heslo:

{QFMlh / 6WjF8H9po9UDo0Nv18e527jqWb6mUgIB798n4 =}

4.2. Riešenie problémov s generovaním hesla

Ak vidíme {} namiesto Hlavné heslo: prompt (toto sa môže stať pri použití bash), potom budeme musieť zadať heslo na príkazovom riadku.

Zabaľte heslo do úvodzoviek, aby sme sa ubezpečili, že akékoľvek špeciálne znaky ako „!“ nemajú nežiaduce účinky.

Takže ak používame bash, použijeme jednoduché úvodzovky:

mvn --encrypt-master-heslo 'te! st! ma $ ter'

Alebo použite dvojité úvodzovky, ak používate príkazový riadok systému Windows:

mvn --encrypt-master-heslo "te! st! ma $ ter"

Teraz, niekedy naše generované hlavné heslo obsahuje zložené zátvorky, podobne ako tento príklad so zatváracou zloženou zátvorkou, „}“ za „UD“:

{QFMlh / 6WjF8H9po9UD} 0Nv18e527jqWb6mUgIB798n4 =}

V takom prípade môžeme:

  • spustiť mvn –šifrovanie-hlavné-heslo znova príkaz na vygenerovanie ďalšieho (dúfajme, že bez zloženej zátvorky)
  • uniknite zo zložených zátvoriek v našom hesle pridaním spätnej lomky pred znak „{“ alebo }'

4.3. Vytvorenie a settings-security.xml Súbor

Teraz vložíme naše zašifrované heslo s uniknutým znakom „\}“ súbor s názvom settings-security.xml súbor v našom .m2 adresár:

 {QFMlh / 6WjF8H9po9UD \} 0Nv18e527jqWb6mUgIB798n4 =} 

A nakoniec, Maven nám umožňuje pridať komentár dovnútra hlavného prvku.

Pridajme nejaký text pred oddeľovač hesla „{“, dajme pozor, aby sme v našom komentári nepoužívali {alebo}, pretože Maven ich používa na nájdenie nášho hesla:

Z kučeravej zátvorky sme unikli s „\“ {QFMlh / 6WjF8H9po9UD \} 0Nv18e527jqWb6mUgIB798n4 =}

4.4. Používanie vymeniteľnej jednotky

Povedzme, že musíme byť mimoriadne zabezpečení a chcete uložiť naše hlavné heslo na samostatnom zariadení.

Najskôr umiestnime naše settings-security.xml súbor v konfiguračnom adresári na vymeniteľnej jednotke „R:“:

R: \ config \ settings-security.xml

A teraz budeme aktualizovať settings-security.xml súbor v našom .m2 adresár presmerovať Maven na našu skutočnú settings-security.xml na našej vymeniteľnej jednotke:

   R: \ config \ settings-security.xml 

Maven teraz prečíta naše zašifrované hlavné heslo zo súboru, ktorý sme zadali v premiestnenie element, na našej vymeniteľnej jednotke.

5. Šifrovanie hesiel proxy serverov

Teraz máme hlavné heslo zašifrované, môžeme zašifrovať naše heslo proxy.

Spustíme nasledujúci príkaz a zadáme heslo, “Zmeň ma", po výzve:

mvn --encrypt-password Heslo:

Zobrazí sa naše šifrované heslo:

{U2iMf + 7aJXQHRquuQq6MX + n7GOeh97zB9 / 4e7kkEQYs =}

Náš posledný krok je upravte sekciu proxy v našom súbore settings.xml a vložte naše šifrované heslo:

  BaeldungProxy_Encrypted proxy.baeldung.com 80 baeldung {U2iMf + 7aJXQHRquuQq6MX + n7GOeh97zB9 / 4e7kkEQYs =} 

Uložte si to a Maven by sa teraz mal môcť pripojiť k internetu prostredníctvom nášho servera proxy pomocou našich šifrovaných hesiel.

6. Používanie vlastností systému

Hoci odporúčaný prístup je konfigurácia Mavenu prostredníctvom súboru nastavení, mohli by sme deklarovať našu konfiguráciu proxy cez Java System Properties.

Ak má náš operačný systém už nakonfigurovaný proxy server, mohli by sme nastaviť:

-Djava.net.useSystemProxies = true

Prípadne, aby to bolo vždy povolené, ak máme administrátorské práva, môžeme ich nastaviť v našom /lib/net.properties spis.

Upozorňujeme však, že aj keď samotný Maven môže toto nastavenie rešpektovať, nie všetky doplnky to umožňujú, takže pomocou tejto metódy môžeme stále získať zlyhané pripojenia.

Aj keď je to povolené, môžeme to prepísať nastavenie podrobností nášho HTTP proxy na serveri http.proxyHost systémový majetok:

-Dhttp.proxyHost = proxy.baeldung.com

Náš server proxy počúva na predvolenom porte 80, ale ak by počúval na porte 8080, urobili by sme to nakonfigurovať http.proxyPort nehnuteľnosť:

-Dhttp.proxyPort = 8080

A pre naše stránky, ktoré nepotrebujú proxy server:

-Dhttp.nonLocalHosts = "internal.baeldung.com | localhost | 127. * | [:: 1]"

Pokiaľ je teda náš server proxy na 10.10.0.100, môžeme použiť:

kompilácia mvn -Dhttp.proxyHost = 10.10.0.100 -Dhttp.proxyPort = 8080 -Dhttp.nonProxyHosts = localhost | 127.0.0.1

Samozrejme, ak náš proxy server vyžaduje autentifikáciu, ešte pridáme:

-Dhttp.proxyUser = baeldung -Dhttp.proxyPassword = changeme

A ak by sme chceli, aby sa niektoré z týchto nastavení vzťahovali na všetky naše Maven vyvolania, môžeme ich definovať v premennej prostredia MAVEN_OPTS:

nastaviť MAVEN_OPTS = -Dhttp.proxyHost = 10.10.0.100 -Dhttp.proxyPort = 8080

Teraz, kedykoľvek bežíme ‘mvn„Tieto nastavenia sa použijú automaticky - až do ukončenia.

7. Záver

V tomto článku sme nakonfigurovali server Maven proxy s prihlasovacími údajmi aj bez nich a zašifrovali naše heslo. Videli sme, ako uložiť naše hlavné heslo na externú jednotku, a tiež sme sa pozreli na konfiguráciu servera proxy pomocou vlastností systému.

Teraz sa môžeme podeliť o svoje nastavenia.xml pošlite nám správu s kolegami bez toho, aby ste im odovzdali svoje heslá v čistom texte, a ukážte im, ako ich majú šifrovať!

Ako obvykle sú príklady v tomto článku k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found