Proljetno osiguranje s Mavenom

1. Pregled

U ovom ćemo članku objasniti kako postaviti Proljetno osiguranje s Mavenom i pregledati određene slučajeve korištenja ovisnosti Spring Security. Najnovija izdanja Spring Security možete pronaći na Maven Central.

Ovo je nastavak prethodnog članka s Springom s Mavenom, tako da je za nesigurne ovisnosti Spring potrebno započeti.

2. Proljetna sigurnost s Mavenom

2.1. opruga-sigurnosna-jezgra

Podrška za Core Spring Security - opruga-sigurnosna-jezgra - sadrži funkcionalnost provjere autentičnosti i kontrole pristupa. Ovu ovisnost obvezno je uključiti za sve projekte koji koriste Spring Security.

Dodatno, opruga-sigurnosna-jezgra podržava samostalne (ne-mrežne) programe, sigurnost na razini metode i JDBC:

 5.3.4.IZBUĐENJE 5.2.8.OBLOŽENJE org.springframework.security spring-security-core $ {spring-security.version} 

Imajte na umu da Spring i Spring Security nalaze se na različitim rasporedima izdanja, tako da između brojeva verzija ne postoji uvijek podudaranje 1: 1.

Ako radite sa starijim verzijama Springa - također je vrlo važno razumjeti činjenicu da, neintuitivno, Spring Security 4.1.x ne ovisi o izdanjima Spring 4.1.x! Na primjer, kad je izdan Spring Security 4.1.0, Spring core framework već je bio na 4.2.x i stoga uključuje tu verziju kao ovisnost o kompajliranju. Plan je bliže uskladiti ove ovisnosti u budućim izdanjima - pogledajte ovaj JIRA za više detalja - ali zasad ovo ima praktične implikacije koje ćemo pogledati sljedeće.

2.2. proljeće-sigurnost-web

Dodati Web podrška za Spring Security, trebamo proljeće-sigurnost-web ovisnost:

 org.springframework.security spring-security-web $ {spring-security.version} 

Sadrži filtre i srodnu infrastrukturu web zaštite koja omogućuje kontrolu pristupa URL-u u Servlet okruženju.

2.3. Proljetna sigurnost i starije proljetne osnovne ovisnosti

Ta nova ovisnost također postoji problem za Mavenov graf ovisnosti. Kao što je gore spomenuto, Spring Security staklenke ne ovise o najnovijim Spring core staklenkama (već o prethodnoj verziji). To bi moglo dovesti do njih starije ovisnosti probijajući se na vrhu staze umjesto novijih artefakata 5.x Spring.

Da bismo razumjeli zašto se to događa, moramo pogledati kako Maven rješava sukobe. U slučaju sukoba verzija, Maven će odabrati staklenku koja je najbliža korijenu stabla. Na primjer, opružna jezgra definiraju obojica proljeće-orm (s 5.0.0.Opusti inačica) ali i opruga-sigurnosna-jezgra (s 5.0.2.OSLOBOĐENJE verzija). Dakle, u oba slučaja, proljeće-jdbc definiran je na dubini od 1 od korijena pom našeg projekta. Zbog toga će zapravo biti važno kojim redoslijedom proljeće-orm i opruga-sigurnosna-jezgra definirani su u našem vlastitom pom. Prva će imati prioritet pa možemo završiti s bilo kojom verzijom na našem putu predavanja.

Da bismo riješili ovaj problem, morat ćemo izričito definirati neke od proljetnih ovisnosti u našem vlastitom pomu i ne oslanjamo se na implicitni Mavenov mehanizam rješavanja ovisnosti. Ako to učinite, ta će ovisnost stajati na dubini 0 od našeg pom (kako je definirano u samom pomu) pa će imati prioritet. Sve sljedeće spadaju u istu kategoriju i sve ih treba izričito definirati, bilo izravno ili, za projekte s više modula, u ovisnostUpravljanje element roditelja:

 org.springframework spring-core $ {spring-version} org.springframework spring-context $ {spring-version} org.springframework spring-jdbc $ {spring-version} org.springframework spring-beans $ {spring-version} org. springframework spring-aop $ {spring-version} org.springframework spring-tx $ {spring-version} org.springframework spring-expression $ {spring-version} org.springframework spring-web $ {spring-version} 

2.4. opruga-sigurnost-konfiguracija i drugi

Da bismo koristili bogati prostor imena i bilješke Spring Security XML, trebat će nam opruga-sigurnost-konfiguracija ovisnost:

 org.springframework.security spring-security-config $ {spring-security.version} 

Konačno, LDAP, ACL, CAS, OAuth i OpenID podrška imaju svoje ovisnosti u Spring Security: proljeće-sigurnost-ldap, opruga-osiguranje-akl, opruga-sigurnost-cas, opruga-sigurnost-oauth i proljeće-sigurnost-openid.

2.5. spring-boot-starter-sigurnost

Kada radite s Spring Boot, spring-boot-starter-sigurnost starter će automatski uključiti sve ovisnosti kao što su opruga-sigurnosna-jezgra, proljeće-sigurnost-web i opruga-sigurnost-konfiguracija između ostalih:

 org.springframework.boot spring-boot-starter-security 2.3.3.OSLOBODI 

Budući da će Spring Boot za nas automatski upravljati svim ovisnostima, to će se riješiti i prethodno spomenutog problema sa proljetnom sigurnošću i starijim ovisnostima.

3. Korištenje snimaka i prekretnica

Prekretnice Spring Securitya, kao i snimke, dostupne su u prilagođenim spremištima Maven koje pruža Spring. Za dodatne detalje o tome kako ih konfigurirati, pogledajte kako koristiti Snimke i prekretnice.

4. Zaključak

U ovom smo brzom vodiču razgovarali o praktičnim detaljima korištenja Proljetno osiguranje s Mavenom. Ovdje predstavljene ovisnosti o Mavenu su, naravno, neke od glavnih, a postoji i nekoliko drugih koje možda vrijedi spomenuti, ali još nisu napravljene. Ipak, ovo bi trebalo biti dobra polazna točka za korištenje Springa u projektu s Mavenom.