import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class ADAuthenticator {
private String domain;
private String ldapHost;
private String searchBase;
public ADAuthenticator()
{
this.domain = "rd.**.com";
this.ldapHost = "ldap://**.rd.**.com";
this.searchBase = "dc=rd,dc=ge**,dc=com";
}
public ADAuthenticator(String domain, String host, String dn)
{
this.domain = domain;
this.ldapHost = host;
this.searchBase = dn;
}
public Map authenticate(String user, String pass)
{
String returnedAtts[] ={ "sn", "givenName", "mail" };
String searchFilter = "(&(objectClass=user)(sAMAccountName=" + user + "))";
//Create the search controls
SearchControls searchCtls = new SearchControls();
searchCtls.setReturningAttributes(returnedAtts);
//Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapHost);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, user + "@" + domain);
env.put(Context.SECURITY_CREDENTIALS, pass);
LdapContext ctxGC = null;
try
{
ctxGC = new InitialLdapContext(env, null);
//Search objects in GC using filters
NamingEnumeration answer = ctxGC.search(searchBase, searchFilter, searchCtls);
while (answer.hasMoreElements())
{
SearchResult sr = (SearchResult) answer.next();
Attributes attrs = sr.getAttributes();
Map amap = null;
if (attrs != null)
{
amap = new HashMap();
NamingEnumeration ne = attrs.getAll();
while (ne.hasMore())
{
Attribute attr = (Attribute) ne.next();
amap.put(attr.getID(), attr.get());
}
ne.close();
}
return amap;
}
}
catch (NamingException ex)
{
ex.printStackTrace();
}
return null;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String tdomain = "rd.**.com";
String tidaphost = "ldap://a***.rd.**.com";
String tsearchbase = "dc=rd,dc=ge***,dc=com";
ADAuthenticator ada = new ADAuthenticator(tdomain,tidaphost , tsearchbase);
String user = "username";
String pwd = "12345678";
Map umap = ada.authenticate(user, pwd);
if (umap == null)
System.out.println("login failed");
else {
System.out.println("fsdklajfdalskjfjsaklfj");
}
}
}
分享到:
相关推荐
在 IDAP-Link 和 IDAP-M 板上使用的软件和固件。 IDAP-M 是一种集成在目标板上的 CMSIS-DAP JTAG 模块设计。 IDAP-Link 是一个独立的 CMSIS-DAP 调试 JTag。 它使用 IDAP-M 作为核心 JTAG
iOS反编译工具,需要做越狱开发,或相关研究的ios开发人员必备
是一款很好的软件!希望对大家的今后的工作有很大帮助!
德扎卡亚IDAP第一个应用程序我需要的 : 6月11日。我仍然需要做:查看最后一次提交有用的链接和内容: 音频连接编译'com.github.hiteshsondhi88.libffmpeg:FFmpegAndroid:0.2.5'-Gradle添加FFMpeg
catgyid6,catgyname6,catgyid7,catgyname7,catgyid8,catgyname8,catgyid9,catgyname9,levelnum,catgyno,createtmp idap_dim_chrg_item_catgy /user/hive/staging/idap_dim_chrg_item_catgy 注意导入的时候要先在...
包含spring ldap开发用的包,是当前的最新版,其余还需要jar包括commons-collection.jar,commons-lang.jar,commons-logging.jar,ldapbp.jar,spring-beans.jar,spring-context.jar,spring-dao.jar
ldap.jarldap.jar
入侵和附件 这是《 Ahoy Worlds Invade》和《附件》的完整改写 要构建任务,您需要Python并运行: python build.py 内置任务存在于built文件夹中。地图配置位于map 当前状态: Altis地图与近程FOB。 主要AO和FOB的...
JNDI漏洞利用 一款用作JNDI注入利用的工具,大量参考/引用了Rogue JNDI项目的代码,支持直接插入植入内存shell ,并集成了常见的bypass 高版本JDK的方式,适用于与自动化工具配合使用。 使用说明 ...
今天给大家分享python idap实现登录的实例代码,代码简单易懂,需要的朋友一起看看吧
本文简单的介绍了IBM Directory server 的配置和使用。