Programmēšana

Acegi Security vienas stundas laikā

Acegi Security ir radījis nopietnu pozitīvu atzinību starp Java uzņēmumu izstrādātājiem, tāpēc jūs varētu domāt, kā tas darbojas. Šajā rakstā ShriKant Vashishtha iepazīstina jūs ar visiem Acegi Security praktiskās ieviešanas posmiem. Vispirms jūs izveidosiet veidlapu autentifikācijas un autorizācijas pakalpojumus Java balstītai tīmekļa lietojumprogrammai, pēc tam pielāgosiet Acegi Security dinamiskai autorizācijai, kā arī integrācijai ar patentētām autentifikācijas ieviešanām, piemēram, LDAP.

Acegi Security ir spēcīgs un elastīgs drošības risinājums Java uzņēmumu lietojumprogrammām, kas izveidotas, izmantojot Spring sistēmu. Atkarības injicēšana uz pavasara ļauj Acegi viegli konfigurēt un ieviest pilnīgi netraucējošā veidā. Tas ir ieguvums organizācijām, kuras, iespējams, nevēlas īstenot pavasara sistēmu kopumā, bet tomēr tām ir nepieciešama efektīva, atkārtoti izmantojama mantoto lietojumprogrammu drošība.

Šajā rakstā ir sniegts īss sākums Acegi Security ieviešanai pamata pasūtījumu apstrādes lietojumprogrammai. Jūs iestatīsit lietojumprogrammas autentifikācijas un autorizācijas pakalpojumus un šos drošības līdzekļus ieviesīs veidlapās balstītās tīmekļa lapās. Pēc piemēra izpētes aptuveni stundas laikā jebkurai tīmekļa lietojumprogrammai vajadzētu būt iespējai iestatīt pamata veidlapu drošību.

Pēc īsa ieviešanas piemēra ievada jūs uzzināsiet par dažiem veidiem, kā pielāgot lietojumprogrammu drošību, izmantojot Acegi. Jūs redzēsiet, kā iestatīt dinamisku uz lomām balstītu autorizāciju, pamatojoties uz datu bāzi, kas lietotāju lomas kartē vietrāžos URL. Visbeidzot, jūs uzzināsiet, kā izveidot pielāgotu Acegi Security autentifikācijas ieviešanu, kas var integrēties ar esošajām patentētajām autentifikācijas ieviešanām.

Vides iestatīšana

Es gribēju parādīt Acegi piemērojamību visdažādākajām versijām, ne tikai uz pavasari balstītām lietojumprogrammām. Lietojumprogrammas piemēru izveidoju, izmantojot JEE 5, ar JavaServer Pages prezentācijas slānim un SiteMesh Web izkārtojumam. Lietojumprogrammu tikpat viegli varētu izveidot, izmantojot Struts 2, un Struts 2 infrastruktūra jau ir izveidota avota kodā, lai arī tā nav ieviesta. Es izmantoju pavasara atkarības injekciju, lai ieviestu Acegi drošību lietojumprogrammai. Skatiet sadaļu Resursi, lai lejupielādētu lietojumprogrammas avota kodu. Lai iestatītu lietojumprogrammas vidi, rīkojieties šādi:

1. solis. Lejupielādējiet Acegi, 2. pavasari un SiteMesh (skatiet lejupielādes saišu resursus).

2. solis. Java projektā izveidojiet šādu mapes struktūru:

src - Satur Java pirmkodu

pārbaude - Satur testa gadījumus

konfigurēt - Jebkurš rekvizītu / XML konfigurācijas fails, kuram jāatrodas klases ceļā

tīmeklī - satur tīmekļa lietojumprogrammu

|

dekoratori - Satur SiteMesh dekoratorus

attēlus - satur attēlus, ja tādi ir

skripti - JavaScript faili

stili - Kaskādes stila lapas (CSS)

WEB-INF

|

jsp - Satur JavaServer Pages failus (JSP)

lib - Satur JAR

3. solis. Nokopējiet šādus JAR failus WEB-INF / lib direktorijā:

  • acegi-security-1.0.5.jar - Acegi drošības sistēmas galvenās klases
  • cglib-2.1.3.jar - Kodu ģenerēšanas bibliotēka, ko izmanto Spring
  • commons-codec-1.3.jar - Kodētāji un dekodētāji, piemēram, Base64, Hex, Phonetic un URL
  • commons-lang-2.1.jar - Palīgs utilītas java.lang API
  • ehcache-1.2.3.jar - Izmanto pamata kešatmiņas vajadzībām
  • freemarker-2.3.8.jar - Izmanto Struts ieviešana
  • jstl.jar, standard.jar - JavaServer Pages Standard Tag Library (JSTL) tagu bibliotēka
  • log4j-1.2.13.jar - Par mežizstrādi
  • ognl-2.6.11. jar - OGNL bibliotēka, ko izmanto Struts ieviešana
  • sitemesh-2.3.jar - SiteMesh JAR
  • pavasaris.jar - Spring Framework JAR
  • struts2-core-2.0.8.jar - Balsti 2 kodolu JAR
  • xwork-2.0.3.jar - Izmanto Struts

Izmaiņas Web.xml

Tā kā Acegi Security pamatā ir servletu filtri un pārtvērēji, jums jāpievieno ieraksti FilterToBeanProxy filtru jūsu lietojumprogrammā web.xml izvietošanas deskriptors, kā parādīts 1. sarakstā.

Uzskaitīšana 1. Servletu filtru pievienošana vietnei web.xml

  AcegiTraining contextConfigLocation /WEB-INF/applicationContext*.xml Acegi filtru ķēdes starpniekserveris org.acegisecurity.util.FilterToBeanProxy targetClass org.acegisecurity.util.FilterChainProxy ... ... Acegi filtra ķēdes starpniekserveris / j_chegi_log Ķēdes starpniekserveris * .action Acegi filtrs Ķēdes starpniekserveris * .jsp ... 

FilterToBeanProxy nepieciešams inicializācijas parametrs, targetClass. The targetClass parametrs atrod noteiktas klases pirmo objektu lietojumprogrammas kontekstā. 1. saraksta konfigurācijā šī klase ir org.acegisecurity.util.FilterChainProxy. Saistītais pupiņu objekts lietojumprogrammas kontekstā ir filterChainProxy, parādīts 2. sarakstā.

2. saraksts. filterChainProxy

class = "org.acegisecurity.util.FilterChainProxy">   ...   

Ievērojiet, ka 1. sarakstā ir definēti vairāki filtru kartējumi Acegi filtram. Tā vietā jūs varētu izvairīties, izmantojot vispārīgāku filtru kartēšanu, kā parādīts 3. sarakstā.

Saraksts 3. Vispārīga filtru kartēšana

 Acegi filtru ķēdes starpniekserveris / * 

Tomēr, ja 3. sarakstā izmantojat filtru kartēšanu, Acegi filtrs pārtver katru vietrādi URL. Filtrs tagad pieprasa arī statisko resursu (JavaScript, CSS, HTML un attēlu) autorizācijas informāciju, kuru, iespējams, nevēlaties aizsargāt. Jūs varat izvairīties no šī slazda, izmantojot īpašus URL modeļus.

Kārtība ir būtiska, ievietojot servletu filtrus. Tā kā lietojumprogrammas piemērā tiek izmantoti Acegi, JSP un SiteMesh filtri, vispirms ir jāievieto Acegi filtrs, kam seko attiecīgi JSP un SiteMesh filtri.

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