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
- 修改配置文件中的参数,包括LDAP服务器的URL、管理员账号和密码等。 - 确保PHP支持gettext和ldap扩展。 4. **重启Apache服务**: 访问Phpldapadmin页面。 #### 六、配置LDAP日志 为了便于维护和故障排查,...
然后,我们设置了 LDAP 服务器的连接信息,包括管理员名称、管理员密码、LDAP 服务器的 URL 等。接着,我们使用 InitialLdapContext 创建了一个 LDAP 上下文对象 ctx。 三、搜索操作 在搜索操作中,我们首先创建了...
iOS反编译工具,需要做越狱开发,或相关研究的ios开发人员必备
德扎卡亚IDAP第一个应用程序我需要的 : 6月11日。我仍然需要做:查看最后一次提交有用的链接和内容: 音频连接编译'com.github.hiteshsondhi88.libffmpeg:FFmpegAndroid:0.2.5'-Gradle添加FFMpeg
包含spring ldap开发用的包,是当前的最新版,其余还需要jar包括commons-collection.jar,commons-lang.jar,commons-logging.jar,ldapbp.jar,spring-beans.jar,spring-context.jar,spring-dao.jar
1. 连接和身份验证:连接到LDAP服务器并进行身份验证。 2. 搜索操作:执行各种类型的查询,根据不同的过滤条件查找目录中的条目。 3. 添加和删除条目:向目录中添加新条目或删除现有条目。 4. 修改条目:更新目录...
SSL不仅可以验证客户端是否连接到了正确的服务器,还能加密客户端和LDAP服务器之间的通信数据,从而大大增强了整个系统的安全性和可靠性。此外,本文还提到了配置过程中所需的一些基础概念和技术细节,帮助读者更好...
python_ldap-3.4.0-cp38-cp38-win_amd64.whl
AQ支持多种消息类型,包括Raw、XML、Object和Anydata,并且与Oracle的多种API兼容,如OCI(C)、OCCI(C++)、Java JMS、PL/SQL、OO40(COM)、Internet Data Access (IDAP)以及通过异构网关的ODBC。 Change Data ...
catgyid6,catgyname6,catgyid7,catgyname7,catgyid8,catgyname8,catgyid9,catgyname9,levelnum,catgyno,createtmp idap_dim_chrg_item_catgy /user/hive/staging/idap_dim_chrg_item_catgy ``` 该命令使用HBase的`...
入侵和附件 这是《 Ahoy Worlds Invade》和《附件》的完整改写 要构建任务,您需要Python并运行: python build.py 内置任务存在于built文件夹中。地图配置位于map 当前状态: Altis地图与近程FOB。 主要AO和FOB的...
这个接口文档是基于SGIP1.1协议标准,使得SP能够通过英斯克的iDAP短信网关向终端用户发送和接收短信。本文档详细介绍了如何使用spApi.jar包中的各类进行操作。 1. API包结构与使用 spApi.jar包含了一系列关键类,...
1. **dwr.xml配置**:使用DWR框架进行Ajax调用的配置文件,指定了Java类`com.zjhcsoft.idap.struts.ajaxBean.SaleOrganizeAjax`作为处理请求的后端类。 2. **数据库查询语句**:根据父级编码查询子级组织机构信息,...
JNDI漏洞利用 一款用作JNDI注入利用的工具,大量参考/引用了Rogue JNDI项目的代码,支持直接插入植入内存shell ,并集成了常见的bypass 高版本JDK的方式,适用于与自动化工具配合使用。 使用说明 ...