Korištenje Mavena iza proxyja

1. Uvod

U ovom uputstvu idemo konfigurirati Maven da radi iza proxyja - uobičajena situacija u okruženjima u kojima se ne povezujemo izravno s internetom.

U našem se primjeru naš proxy izvodi na računalu 'proxy.baeldung.com' i preslušava proxy zahtjeve putem HTTP-a na portu '80'. Također ćemo upotrijebiti neke interne stranice na internom.baeldung.com na kojima ne trebamo prolaziti preko proxyja.

2. Konfiguracija proxyja

Prvi, postavimo osnovnu konfiguraciju proxyja bez ikakvih vjerodajnica.

Uredimo našeg Mavena postavke.xml obično se nalazi u našem/.m2 ′ imenik. Ako ga još nema, možemo ga kopirati iz globalnih postavki na ‘/ conf ' imenik.

A sada stvorimo a ulaz unutar odjeljak:

  proxy.baeldung.com 80 

Budući da koristimo i lokalnu web lokaciju koja ne treba prolaziti kroz proxy, navedimo je u pomoću "|" odvojeni popis s našim lokalnim hostom:

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

3. Dodavanje vjerodajnica

Da naš proxy nije osiguran, to je sve što bismo trebali; međutim, naša je, tako dodajmo svoje vjerodajnice definiciji proxyja:

baeldung changeme 

Unose korisničkog imena / lozinke ne dodajemo ako nam nisu potrebni - čak i one prazne - jer njihovo prisustvo ukoliko proxy ne želi može uzrokovati odbijanje naših zahtjeva.

Naša minimalna ovjerena konfiguracija sada bi trebala izgledati ovako:

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

Sada, kad pokrenemo mvn naredba da ćemo proći kroz proxy za povezivanje sa web mjestima za kojima tragamo.

3.1. Fakultativni unosi

Dajmo to neobavezno iskaznica od "BaeldungProxy_Authenticated" kako bi se olakšalo pozivanje, u slučaju da ikad trebamo zamijeniti proxy:

BaeldungProxy_Authenticated

Ako imamo drugi proxy, možemo dodati još jednu definiciju proxyja, ali samo jedan može biti aktivan. Prema zadanim postavkama, Maven će upotrijebiti prvu aktivnu definiciju proxyja koju pronađe.

Definicije proxyja su prema zadanim postavkama aktivne i dobivaju implicitnu definiciju:

pravi

Ako bismo željeli učiniti drugog proxyja aktivnim, tada bismo deaktivirali naš izvorni unos postavljanjem lažno:

lažno

Mavenova zadana vrijednost za protokol proxyja je HTTP, što je prikladno za većinu slučajeva. Ako naš proxy koristi drugačiji protokol, mi bismo ga ovdje prijavili i zamijenili http s protokolom koji treba našem proxyju:

http

Imajte na umu da je ovo protokol koji proxy koristi - protokol naših zahtjeva (ftp: //, //, //) neovisan je o tome.

I evo kako izgleda naša proširena definicija proxyja, uključujući fakultativne elemente:

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

Dakle, to je to za naš osnovni unos proxyja, ali je li to dovoljno sigurno za nas?

4. Osiguravanje naše konfiguracije

Recimo sada, jedan od naših kolega želi da im pošaljemo našu konfiguraciju proxyja.

Nismo previše zainteresirani za slanje lozinke u običnom tekstu, pa pogledajmo kako Maven olakšava šifriranje naših lozinki.

4.1. Stvaranje glavne lozinke

Prvo, odaberite glavnu lozinku, recimo "te! St! Ma $ ter".

Sada šifrirajmo svoju glavnu lozinku, unošenjem u prompt kad pokrenemo:

mvn --encrypt-master-password Glavna lozinka: 

Nakon što pritisnemo enter, vidimo našu šifriranu lozinku zatvorenu između vitičastih zagrada:

{QFMlh / 6WjF8H9po9UDo0Nv18e527jqWb6mUgIB798n4 =}

4.2. Rješavanje problema s generiranjem lozinke

Ako umjesto { Glavna lozinka: prompt (to se može dogoditi kada koristite bash), tada ćemo morati navesti lozinku u naredbenom retku.

Umotajmo lozinku u navodnike kako bismo bili sigurni da su u pitanju posebni znakovi poput "!" nemaju neželjene učinke.

Dakle, upotrijebimo pojedinačne navodnike ako koristimo bash:

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

Ili upotrijebite dvostruke navodnike ako koristite naredbeni redak sustava Windows:

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

Sada, ponekad naša generirana glavna lozinka sadrži kovrčave zagrade, poput ovog primjera s zatvarajućom kovrčavom zagradom, '}', iza 'UD':

{QFMlh / 6WjF8H9po9UD} 0Nv18e527jqWb6mUgIB798n4 =}

U ovom slučaju možemo:

  • pokrenite mvn –encrypt-master-password naredba ponovno za generiranje još jedne (nadamo se bez kovrčave zagrade)
  • izbjegnite kovrčave zagrade u našoj lozinci dodavanjem kose crte ispred znaka "{" ili }'

4.3. Stvaranje a postavke-sigurnost.xml Datoteka

Sad stavimo našu šifriranu lozinku s preskočenim znakom '\}' u datoteka nazvana postavke-sigurnost.xml datoteku u našem .m2 imenik:

 {QFMlh / 6WjF8H9po9UD \} 0Nv18e527jqWb6mUgIB798n4 =} 

I na kraju, Maven nam omogućuje dodavanje komentara unutar glavnog elementa.

Dodajmo malo teksta prije lozinke ‘{‘ graničnik, pazeći da ne upotrijebimo {ili} u našem komentaru jer ih Maven koristi za pronalazak naše lozinke:

Izbjegli smo kovrčavu zagradu s '\' {QFMlh / 6WjF8H9po9UD \} 0Nv18e527jqWb6mUgIB798n4 =}

4.4. Korištenje prijenosnog pogona

Recimo da moramo biti dodatno sigurni i želite pohraniti našu glavnu lozinku na zaseban uređaj.

Prvo ćemo smjestiti svoje postavke-sigurnost.xml datoteka u konfiguracijskom direktoriju na prijenosnom pogonu, “R:”:

R: \ config \ settings-security.xml

A sada ćemo ažurirati postavke-sigurnost.xml datoteku u našem .m2 direktorij za preusmjeravanje Mavena na naš pravi postavke-sigurnost.xml na našem prijenosnom pogonu:

   R: \ config \ settings-security.xml 

Maven će sada pročitati našu šifriranu glavnu lozinku iz datoteke koju smo naveli u preseljenje element, na našem prijenosnom pogonu.

5. Šifriranje proxy lozinki

Sada imamo šifriranu glavnu lozinku, možemo šifriraj našu proxy lozinku.

Pokrenimo sljedeću naredbu i unesite svoju lozinku, “promijeni me", na upit:

mvn --encrypt-password Lozinka:

Prikazuje se naša šifrirana lozinka:

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

Naš posljednji korak je uredite odjeljak proxy u našoj datoteci settings.xml i stavite našu šifriranu lozinku:

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

Spremite ovo, i Maven bi se sada trebao moći povezati s internetom putem našeg proxyja, koristeći naše šifrirane lozinke.

6. Korištenje svojstava sustava

Iako konfiguriranje Mavena putem datoteke s postavkama je preporučeni pristup, mogli bismo proglasiti našu proxy konfiguraciju putem Java System Properties.

Ako naš operativni sustav već ima konfiguriran proxy, mogli bismo postaviti:

-Djava.net.useSystemProxies = točno

Alternativno, tako da je uvijek omogućeno, ako imamo administratorska prava, to možemo postaviti u našem /lib/net.properties datoteka.

Međutim, imajmo na umu da, iako Maven i sam možda poštuje ovu postavku, svi dodaci to ne čine, pa ćemo i dalje možda dobiti neuspjele veze pomoću ove metode.

Čak i kad je omogućeno, to možemo nadjačati postavljanje detalja našeg HTTP proxyja na http.proxyHost svojstvo sustava:

-Dhttp.proxyHost = proxy.baeldung.com

Naš proxy sluša na zadanom priključku 80, ali ako je preslušao na priključku 8080, mi bismo konfigurirati http.proxyPort imovine:

-Dhttp.proxyPort = 8080

I za naše web stranice koje ne trebaju proxy:

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

Dakle, ako je naš proxy na 10.10.0.100, možemo koristiti:

mvn prevesti -Dhttp.proxyHost = 10.10.0.100 -Dhttp.proxyPort = 8080 -Dhttp.nonProxyHosts = localhost | 127.0.0.1

Naravno, ako naš proxy zahtijeva provjeru autentičnosti, također ćemo dodati:

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

A ako smo željeli da se neke od ovih postavki primjenjuju na sve naše Maven pozive, možemo ih definirati u varijabli okruženja MAVEN_OPTS:

postavite MAVEN_OPTS = -Dhttp.proxyHost = 10.10.0.100 -Dhttp.proxyPort = 8080

Sad, kad god pokrenemomvn'Ove će se postavke automatski primijeniti - sve dok ne izađemo.

7. Zaključak

U ovom smo članku konfigurirali Mavenov proxy s vjerodajnicama i bez njih te šifrirali lozinku. Vidjeli smo kako pohraniti glavnu lozinku na vanjski pogon, a također smo pogledali i konfiguriranje proxyja pomoću svojstava sustava.

Sada možemo podijeliti svoje postavke.xml podnesite datoteku s našim kolegama bez davanja lozinki u običnom tekstu i pokažite im kako ih šifrirati!

Kao i obično, primjeri u ovom članku dostupni su na GitHubu.


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