Úvod do jarného zabezpečenia LDAP
1. Prehľad
V tomto rýchlom výučbe sa naučíme, ako nastaviť Spring Security LDAP.
Než začneme, poznámka o tom, čo je LDAP - je to skratka pre Lightweight Directory Access Protocol a je to otvorený protokol neutrálny voči predajcovi pre prístup k adresárovým službám v sieti.
2. Závislosť od Maven
Najprv sa pozrime na závislosti závislostí, ktoré potrebujeme:
org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5
Poznámka: Ako server LDAP, ktorý je rozšíriteľným a vložiteľným adresárovým serverom, sme použili ApacheDS.
3. Konfigurácia Java
Ďalej poďme diskutovať o našej konfigurácii Java pre jarné zabezpečenie:
verejná trieda SecurityConfig rozširuje WebSecurityConfigurerAdapter {@Override chránená neplatná konfigurácia (AuthenticationManagerBuilder auth) vyvolá výnimku {auth.ldapAuthentication () .usSearchSearch ("ou = people"). userSearchFilter ("(uid = {0})") .groupSearchBase ("ou" = groups ") .groupSearchFilter (" member = {0} ") .contextSource () .root (" dc = baeldung, dc = com ") .ldif (" classpath: users.ldif "); }}
Toto je samozrejme iba časť konfigurácie relevantná pre LDAP - úplnú konfiguráciu Java nájdete tu.
4. Konfigurácia XML
Poďme sa teraz pozrieť na zodpovedajúcu konfiguráciu XML:
Toto je opäť iba časť konfigurácie - časť, ktorá je relevantná pre LDAP; úplnú konfiguráciu XML nájdete tu.
5. Formát výmeny údajov LDAP
Údaje LDAP je možné reprezentovať pomocou formátu LDIF (LDIF Data Interchange Format) - tu je príklad našich používateľských údajov:
dn: ou = groups, dc = baeldung, dc = com objectclass: top objectclass: organizationUnit ou: groups dn: ou = people, dc = baeldung, dc = com objectclass: top objectclass: organizationUnit 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: password 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: užívateľský člen: uid = baeldung, ou = people, dc = baeldung, dc = com
6. Žiadosť
Na záver je tu naša jednoduchá aplikácia:
@Controller public class MyController {@RequestMapping ("/ secure") public String secure (Map model, Principal principal) {model.put ("title", "SECURE AREA"); model.put ("správa", "Túto stránku môžu vidieť iba oprávnení používatelia"); vrátiť sa domov"; }}
7. Záver
V tomto rýchlom sprievodcovi jarným zabezpečením pomocou protokolu LDAP sme sa naučili, ako zabezpečiť základný systém pomocou protokolu LDIF a nakonfigurovať zabezpečenie tohto systému.
The úplná implementácia tohto tutoriálu nájdete v projekte GitHub - jedná sa o projekt založený na Eclipse, takže by malo byť ľahké ho importovať a spustiť tak, ako je.