通过LDAP服务器验证用户身份
来源:互联网 发布:do it move it什么歌 编辑:程序博客网 时间:2024/05/17 07:18
最近做的项目中,登录时需要连接到远程LDAP服务器对用户身份进行合法性验证,并获取登录用户权限等数据。下面是Java中访问LDAP的核心代码,供大家参考:
public boolean authenticateUserViaLdap(String username, String password)
throws LogicException {
Hashtable srchEnv = new Hashtable(11);
// 从ldap.properties配置文件中获取LDAP服务器的一些属性
String ldapURL = PropertyUtils.getProperty("ldap.server.url",
PROPFILEPATH);
String ldapPort = PropertyUtils.getProperty("ldap.server.port",
PROPFILEPATH);
String authMode = PropertyUtils.getProperty("ldap.server.auth.mode",
PROPFILEPATH);
String searchBase = PropertyUtils.getProperty(
"ldap.server.search.base", PROPFILEPATH);
String authPrincipal = PropertyUtils.getProperty(
"ldap.server.auth.principal", PROPFILEPATH);
// replace the word [username] in authPrincipal with the user's name
String resultAuthPrincipal = "";
resultAuthPrincipal = authPrincipal.substring(0, authPrincipal
.indexOf("[username]"))
+ username;
if (authPrincipal.length() > (authPrincipal.indexOf("[username]") + "[username]"
.length())) {
resultAuthPrincipal += authPrincipal.substring(authPrincipal
.indexOf("[username]")
+ "[username]".length());
}
logger.debug("security principal: " + resultAuthPrincipal);
srchEnv.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
srchEnv.put(Context.SECURITY_AUTHENTICATION, authMode);
srchEnv.put(Context.SECURITY_PRINCIPAL, resultAuthPrincipal);
srchEnv.put(Context.SECURITY_CREDENTIALS, password);
srchEnv.put(Context.PROVIDER_URL, ldapURL + ":" + ldapPort);
String[] returnAttribute = { "dn" };
SearchControls srchControls = new SearchControls();
srchControls.setReturningAttributes(returnAttribute);
srchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String searchFilter = "(cn=" + username + ")";
try {
DirContext srchContext = new InitialDirContext(srchEnv);
NamingEnumeration srchResponse = srchContext.search(searchBase,
searchFilter, srchControls);
String distName = srchResponse.nextElement().toString();
logger.debug("user authentication successful.");
return true;
} catch (NamingException namEx) {
logger.error("user authentication failed.");
logger.error(namEx, namEx.fillInStackTrace());
}
return false;
}
- 通过LDAP服务器验证用户身份
- LDAP用户验证(Spring-LDAP)
- LDAP用户验证(Spring-LDAP)
- LDAP用户验证(Spring-LDAP)
- Java程序通过LDAP对用户进行登陆验证
- 迈瑞ldap用户验证
- 通过LDAP验证
- 解决用户登录不同服务器,不同服务器验证用户身份的方法。
- 通过python-ldap处理ldap服务器
- Code4 使用LDAP验证用户
- 用 LDAP 验证用户是否合法
- LDAP用户验证过程概述
- 遍历查询ldap服务器用户
- LDAP 通过用户DN查找用户属性
- WebSphere 应用服务器 V6.1 中的 LDAP 身份认证
- linux使用 LDAP 服务器进行网络身份验
- LDAP 验证、新增、修改、查询用户
- Linux下LDAP统一用户验证
- SqlMap中使用集合方式查询
- 关闭IE6/IE7页面的JavaScript
- 迅速解决JSP及数据库中文编码问题!
- jdk5.0 中的foreach语法
- 你的项目工作量预算是不是象扁嫂的人头账号?
- 通过LDAP服务器验证用户身份
- JSP连接各类数据库大全
- OpenJWeb java web应用快速开发平台增删改查视频发布
- 使用OLE控件和DDE服务器把数据窗口的记录写到EXCEL文件的比较
- Repeater应用分页存储过程
- WSS列表访问统计的实现
- struct in_addr在结构体中位置问题
- Toad Can't initialize OCI. Error -1解决办法
- cout 格式化输出