java 连接 LDAP 进行登录验证初接触
2017-11-03 17:11
495 查看
注:公司需要在登录功能中添加 LDAP 验证功能,本篇只是本人的相关工作笔记,都是最简单的内容,而且可能有错漏,不小心点开的网友可以直接关闭,不需要在这浪费时间。
2. Windows下OpenLDAP的安装及使用(一)
3. (转)JNDI/LDAP Active Directory验证第五部分 Simple
感觉是不是自己找的参考资料时间太久了,很多新的版本 OpenLDAP for Windows 的安装包跟参考的博文中安装后的目录结构完全不一样。没办法找了好久,终于找到一个能用的。
一 参考博文资料
1. 图文介绍openLDAP在windows上的安装配置2. Windows下OpenLDAP的安装及使用(一)
3. (转)JNDI/LDAP Active Directory验证第五部分 Simple
二 OpenLDAP for Windows 安装包
openldap-for-windows.msi感觉是不是自己找的参考资料时间太久了,很多新的版本 OpenLDAP for Windows 的安装包跟参考的博文中安装后的目录结构完全不一样。没办法找了好久,终于找到一个能用的。
三 java 连接 LDAP 服务器进行验证
import java.util.Hashtable; import javax.naming.Context; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Component public class LDAPService { protected Logger logger = LoggerFactory.getLogger(getClass()); private String LDAP_URL; /** * LDAP验证用户登录 * @param userName * @param password * @return */ public boolean authenticate(String userName, String password) { boolean bRtn = false;// 标注是否验证成功,初始为false Hashtable<String, String> env = new Hashtable<String, String>(4); // LDAP 服务器的 URL 地址, LDAP_URL = "ldap://xxx.xxx.xxx/dc=aaa,dc=bbb"; //env 中的key都是固定值在 javax.naming.Context 类中 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");// ldapCF env.put(Context.PROVIDER_URL, LDAP_URL);// ldapURL env.put(Context.SECURITY_AUTHENTICATION, "simple"); // ldapAuthMode //username和对应的password怎么在LDAP服务器中设置,我也不知道 //通过默认的用户名"cn=manager,dc=aaa,dc=bbb"(aaa、bbb的具体值要在配置文件中配置,具体看参考博文)和密码"secret",可以测试连接是否成功 env.put(Context.SECURITY_PRINCIPAL, userName); env.put(Context.SECURITY_CREDENTIALS, password); DirContext ctx = null; try { //这条代码执行成功就是验证通过了,至于为什么我也不知道 ctx = new InitialDirContext(env); bRtn = true; logger.info("Ldap验证通过!"); } catch (Exception ex) { logger.error("Ldap 初始化 出错:", ex); } finally { try { if (ctx != null) { ctx.close(); ctx = null; } env.clear(); } catch (Exception e) { logger.error("Ldap context close出错:", e); } } if (StringUtils.isBlank(LDAP_URL)) { bRtn = true; } //验证成功返回 true,验证失败返回false return bRtn; } }
相关文章推荐
- ldap验证用户(java)<不能以simple协议来获取连接进行连接>
- 死亡历险,asp.net做的Webservice,Java做的安卓调用Webservice进行登录验证
- JAVA实现LDAP连接验证
- Java界面开发——登录并对用户身份进行验证
- Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)
- Java界面开发——登录并对用户身份进行验证
- Java连接微软 Active Directory进行用户验证
- 利用Spring进行LDAP验证登录遇到的问题及其解决方式
- PHP LDAP连接微软活动目录进行身份验证
- 制作一个银行卡用户登录页面,提交后连接数据库进行登录验证,根据验证结果跳转到不同页面
- 【转载】Java通过JDBC分别采用Windows身份验证模式和混合验证模式连接登录SQL Server2008数据库代码
- Java程序通过LDAP对用户进行登陆验证
- jsp登录界面连接mysql数据库并进行验证的方式
- java利用jdbc连接Mysql数据库——实现登录注册功能
- Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
- Java连接MongoDB进行增删改查
- iOS 与Java 配合在用户登录的时候对用户名和密码进行RSA加密
- MVC(JSP+JavaBean+Servlet),用户登录验证开始
- 利用java在服务器和客服端建立连接,进行通讯(代码实例)
- 运用java进行web开发时常用的连接数据库方式