Автор оригинала: Eugen Paraschiv.
1. Обзор
В этом кратком руководстве мы узнаем, как настроить LDAP Spring Security.
Прежде чем мы начнем, обратите внимание на то, что такое LDAP – это легкий протокол доступа к каталогам, и это открытый, нейтральный к поставщикам протокол для доступа к службам каталогов по сети.
Дальнейшее чтение:
Обзор весеннего LDAP
Руководство по Spring Data LDAP
Данные Spring с защитой Spring
2. Зависимость Maven
Во-первых, давайте взглянем на зависимости maven, которые нам нужны:
org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5
Примечание: Мы использовали ApacheDS в качестве нашего LDAP-сервера, который является расширяемым и встраиваемым сервером каталогов.
3. Конфигурация Java
Далее давайте обсудим нашу конфигурацию Java Spring Security:
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(Mapmodel, Principal principal) { model.put("title", "SECURE AREA"); model.put("message", "Only Authorized Users Can See This Page"); return "home"; } }
7. Заключение
В этом кратком руководстве по безопасности Spring с LDAP мы узнали, как обеспечить базовую систему LDIF и настроить безопасность этой системы.
полную реализацию этого учебника можно найти в проекте GitHub – это проект на основе Eclipse, поэтому его должно быть легко импортировать и запускать как есть.