1. Общ преглед
В този бърз урок ще научим как да настроим Spring Security LDAP.
Преди да започнем, бележка за това какво е LDAP - той означава Лек протокол за достъп до директории и това е отворен, неутрален от доставчика протокол за достъп до каталожни услуги през мрежа.
2. Зависимост на Maven
Първо, нека да разгледаме зависимостите на maven, от които се нуждаем:
org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5
Забележка: Използвахме ApacheDS като наш LDAP сървър, който е разширяем и вграждаем сървър на директории.
3. Конфигурация на Java
След това нека обсъдим нашата конфигурация Spring Java Java:
public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.ldapAuthentication() .userSearchBase("ou=people") .userSearchFilter("(uid={0})") .groupSearchBase("ou=groups") .groupSearchFilter("member={0}") .contextSource() .root("dc=baeldung,dc=com") .ldif("classpath:users.ldif"); } }
Това разбира се е само свързаната с LDAP част от конфигурацията - пълната конфигурация на Java можете да намерите тук.
4. XML конфигурация
Сега, нека да разгледаме съответната XML конфигурация:
Отново, това е само част от конфигурацията - частта, която е от значение за LDAP; пълната XML конфигурация можете да намерите тук.
5. Формат за обмен на данни LDAP
LDAP данните могат да бъдат представени чрез LDAP формат за обмен на данни (LDIF) - ето пример за нашите потребителски данни:
dn: ou=groups,dc=baeldung,dc=com objectclass: top objectclass: organizationalUnit ou: groups dn: ou=people,dc=baeldung,dc=com objectclass: top objectclass: organizationalUnit ou: people dn: uid=baeldung,ou=people,dc=baeldung,dc=com objectclass: top objectclass: person objectclass: organizationalPerson 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: user member: uid=baeldung,ou=people,dc=baeldung,dc=com
6. Приложението
И накрая, ето нашето просто приложение:
@Controller public class MyController { @RequestMapping("/secure") public String secure(Map model, Principal principal) { model.put("title", "SECURE AREA"); model.put("message", "Only Authorized Users Can See This Page"); return "home"; } }
7. Заключение
В това кратко ръководство за Spring Security с LDAP научихме как да осигурим основна система с LDIF и да конфигурираме защитата на тази система.
Най- пълното прилагане на този урок може да се намери в проекта GitHub - това е Eclipse базиран проект, така че трябва да бъде лесен за внос и работи като такъв.