Tavaszi biztonság Maven-nel

1. Áttekintés

Ebben a cikkben elmagyarázzuk, hogyan kell beállítani Tavaszi biztonság Maven-nel és áttekintheti a Spring Security függőségek használatának speciális felhasználási eseteit. Megtalálja a legújabb Spring Security kiadásokat a Maven Central oldalon.

Ez az előző Spring with Maven cikk folytatása, így a nem biztonsági tavaszi függőségeknél itt kell elindulni.

2. Tavaszi biztonság Mavennel

2.1. rugó-biztonsági mag

Az alapvető tavaszi biztonsági támogatás - rugó-biztonsági mag - hitelesítést és beléptető funkciót tartalmaz. Ezt a függőséget kötelező feltüntetni minden olyan projekt esetében, amely a Spring Security programot használja.

Ezenkívül rugó-biztonsági mag támogatja az önálló (nem webes) alkalmazásokat, a módszer szintű biztonságot és a JDBC-t:

 5.3.4.KÖZLEMÉNY 5.2.8.RELEASE org.springframework.security spring-security-core $ {spring-security.version} 

Vegye figyelembe, hogy A tavaszi és a tavaszi biztonság különböző kiadási ütemtervekkel rendelkezik, tehát a verziószámok között nem mindig van 1: 1 arányú egyezés.

Ha a Spring régebbi verzióival dolgozik - nagyon fontos megérteni azt a tényt is, hogy nem szándékosan A Spring Security 4.1.x nem függ a Spring 4.1.x verzióitól! Például a Spring Security 4.1.0 kiadásakor a Spring core keretrendszer már a 4.2.x-es verziójú volt, ezért fordítási függőségként tartalmazza ezt a verziót. A terv az, hogy ezeket a függőségeket a jövőbeni kiadásokban szorosabban összehangoljuk - további részletekért lásd ezt a JIRA-t -, de egyelőre ennek vannak gyakorlati következményei, amelyeket később megvizsgálunk.

2.2. tavasz-biztonsági web

Hozzáadni Internetes támogatás a Spring Security számára, szükségünk van a tavasz-biztonsági web függőség:

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

Ez olyan szűrőket és kapcsolódó webbiztonsági infrastruktúrát tartalmaz, amely lehetővé teszi az URL-hozzáférés ellenőrzését a Servlet-környezetben.

2.3. Tavaszi biztonsági és régebbi tavaszi alapvető függőségi probléma

Ez az új függőség is megmutatkozik probléma a Maven-függőségi grafikon számára. Mint fentebb említettük, a Spring Security edények nem a legújabb Spring mag edényektől (hanem az előző verziótól) függenek. Ez ezekhez vezethet idősebb függőségek az 5.x Spring legújabb műtárgyai helyett az osztály tetején haladnak.

Ahhoz, hogy megértsük, miért történik ez, meg kell vizsgálnunk, hogyan Maven megoldja a konfliktusokat. Verziókonfliktus esetén Maven a fa gyökeréhez legközelebb eső korsót választja. Például, rugómag mindkettő meghatározza tavasz-orm (az 5.0.0-val.KIADÁS változat), hanem az is rugó-biztonsági mag (a ... val 5.0.2.KÖZLEMÉNY változat). Tehát mindkét esetben tavasz-jdbc 1-es mélységben definiáljuk projektünk gyökérkönyvéből. Emiatt valóban számít, hogy melyik sorrendben tavasz-orm és rugó-biztonsági mag saját pomunkban vannak meghatározva. Az első prioritást élvez bármelyik verzióhoz juthatunk az osztályúton.

A probléma kezeléséhez meg kell tennünk határozza meg kifejezetten a tavaszi függőségek egy részét a saját pomunkban, és ne támaszkodjunk az implicit Maven-függőség-feloldó mechanizmusra. Ezzel az adott függőség 0 mélységbe kerül a pomunktól (amint azt maga a pom meghatározza), így elsőbbséget élvez. Az alábbiak mindegyike ugyanabba a kategóriába tartozik, és mindegyiket kifejezetten meg kell határozni, akár közvetlenül, akár több modulos projektek esetében a függőségMenedzsment a szülő eleme:

 org.springframework tavaszmag $ {spring-version} org.springframework spring-context $ {spring-version} org.springframework spring-jdbc $ {spring-version} org.springframework spring-bab $ {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. spring-security-config és mások

A gazdag Spring Security XML névtér és kommentárok használatához szükségünk lesz a spring-security-config függőség:

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

Végül az LDAP, az ACL, a CAS, az OAuth és az OpenID támogatás saját függőséggel bír a Spring Security programban: spring-security-ldap, rugó-biztonság-acl, spring-security-cas, spring-security-oauth és spring-security-openid.

2.5. spring-boot-starter-security

Amikor a Spring Boot programmal dolgozik, a spring-boot-starter-security Az indító automatikusan tartalmazza az összes függőséget, mint pl rugó-biztonsági mag, tavasz-biztonsági web és spring-security-config többek között:

 org.springframework.boot spring-boot-starter-security 2.3.3.FELHASZNÁLÁS 

Mivel a Spring Boot az összes függőséget automatikusan kezeli számunkra, ez megszabadul a korábban említett tavaszi biztonsági és régebbi alapvető függőségi problémától is.

3. Pillanatképek és mérföldkövek használata

A Spring Security mérföldkövei, valamint pillanatképek a Spring által biztosított egyedi Maven-tárházakban érhetők el. További tudnivalók ezek konfigurálásáról: Pillanatképek és mérföldkövek használata.

4. Következtetés

Ebben a gyors bemutatóban megvitattuk a használat gyakorlati részleteit Tavaszi biztonság Maven-nel. Az itt bemutatott Maven-függőségek természetesen néhány a legfontosabbak közül, és számos olyan is létezik, amelyeket érdemes megemlíteni, és még nem hajtották végre. Mindazonáltal ennek jó kiindulópontnak kell lennie a Spring használatához egy Maven által támogatott projektben.