浅谈Spring Security LDAP简介
1.概述
在本快速教程中,我们将学习如何设置SpringSecurityLDAP。
在我们开始之前,了解一下LDAP是什么?-它代表轻量级目录访问协议。它是一种开放的,与供应商无关的协议,用于通过网络访问目录服务。
2.MavenDependency
首先,让我们看看我们需要的maven依赖项:
org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5
注意:我们使用ApacheDS作为LDAP服务器,它是一个可扩展和可嵌入的目录服务器。
3.JavaConfiguration
接下来,我们来讨论我们的SpringSecurityJava配置:
publicclassSecurityConfigextendsWebSecurityConfigurerAdapter{ @Override protectedvoidconfigure(AuthenticationManagerBuilderauth)throwsException{ 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.XMLConfiguration
现在,我们来看看相应的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:JimBeam 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.TheApplication
最后,这是我们的简单应用:
@Controller publicclassMyController{ @RequestMapping("/secure") publicStringsecure(Mapmodel,Principalprincipal){ model.put("title","SECUREAREA"); model.put("message","OnlyAuthorizedUsersCanSeeThisPage"); return"home"; } }
7.总结
在这本使用LDAP的SpringSecurity快速指南中,我们学习了如何使用LDIF配置基本系统并在springsecurity配置LDAP。
可以在github项目中找到本教程的完整实现-这是一个基于Eclipse的项目,因此它应该很容易导入和运行。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。