Uvod u proljetni sigurnosni LDAP
1. Pregled
U ovom brzom vodiču naučit ćemo kako postaviti Spring Security LDAP.
Prije nego što započnemo, napomena o tome što je LDAP - skraćenica je od Laganog protokola za pristup direktorijima i to je otvoreni protokol koji je neutralan od dobavljača za pristup uslugama direktorija putem mreže.
2. Ovisnost Mavena
Prvo, pogledajmo maven ovisnosti koje su nam potrebne:
org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5
Napomena: ApacheDS smo koristili kao LDAP poslužitelj koji je proširivi i ugradivi poslužitelj direktorija.
3. Java konfiguracija
Dalje, razgovarajmo o našoj Spring Security Java konfiguraciji:
javna klasa SecurityConfig proširuje WebSecurityConfigurerAdapter {@Override zaštićena void konfiguracija (AuthenticationManagerBuilder auth) baca izuzetak {auth.ldapAuthentication () .userSearchBase ("ou = people") .userSearchFilter ("(uid = {0})" ouase = {0}) "ouBase .group. = grupe ") .groupSearchFilter (" member = {0} ") .contextSource () .root (" dc = baeldung, dc = com ") .ldif (" classpath: users.ldif "); }}
Ovo je naravno samo LDAP relevantan dio konfiguracije - cijelu Java konfiguraciju možete pronaći ovdje.
4. XML konfiguracija
Sada, pogledajmo odgovarajuću XML konfiguraciju:
Opet, ovo je samo dio konfiguracije - dio koji je relevantan za LDAP; cjelovitu XML konfiguraciju možete pronaći ovdje.
5. LDAP format razmjene podataka
LDAP podaci mogu se predstaviti pomoću LDAP Format razmjene podataka (LDIF) - evo primjera naših korisničkih podataka:
dn: ou = groups, dc = baeldung, dc = com objectclass: top objectclass: organizationUnit ou: groups dn: ou = people, dc = baeldung, dc = com objectclass: top objectclass: organisationUnit ou: people dn: uid = baeldung, ou = people, dc = baeldung, dc = com objectclass: top objectclass: person objectclass: organizationPerson objectclass: inetOrgPerson cn: Jim Beam sn: Beam uid: baeldung userPassword: lozinka dn: cn = admin, ou = groups, dc = baeldung, dc = com objectclass: top objectclass: groupOfNames cn: admin member: uid = baeldung, ou = people, dc = baeldung, dc = com dn: cn = user, ou = groups, dc = baeldung, dc = com objectclass: top objectclass : groupOfNames cn: član korisnika: uid = baeldung, ou = people, dc = baeldung, dc = com
6. Prijava
Na kraju, evo naše jednostavne aplikacije:
@Controller javna klasa MyController {@RequestMapping ("/ secure") javni niz siguran (model karte, glavni nalogodavac) {model.put ("naslov", "SIGURNO PODRUČJE"); model.put ("poruka", "Samo ovlašteni korisnici mogu vidjeti ovu stranicu"); Povratak kući"; }}
7. Zaključak
U ovom kratkom vodiču za Spring Security s LDAP-om naučili smo kako pružiti osnovni sustav s LDIF-om i konfigurirati sigurnost tog sustava.
The puna provedba ovog vodiča možete pronaći u projektu GitHub - ovo je projekt zasnovan na Eclipseu, pa bi ga trebalo lako uvesti i pokrenuti kakav jest.