java连接ldap服务器_从Java应用程序连接LDAP服务器「建议收藏」

java连接ldap服务器_从Java应用程序连接LDAP服务器「建议收藏」我正在构建一个基于GXT(J2EE)的应用程序.现在的问题是我必须将应用程序连接到LDAP服务器.您能告诉我如何从我们的Java应用程序连接LDAP服务器以及我将使用哪些库或API?解决方法:要连接到LDAP,请查看以下包/类:javax.naming.directory.*javax.naming.ladp.*com.sun.jndi.ldap.LdapCtxFactorycom.sun.jnd…

大家好,又见面了,我是你们的朋友全栈君。

我正在构建一个基于GXT(J2EE)的应用程序.现在的问题是我必须将应用程序连接到LDAP服务器.您能告诉我如何从我们的Java应用程序连接LDAP服务器以及我将使用哪些库或API?

解决方法:

要连接到LDAP,请查看以下包/类:

javax.naming.directory.*

javax.naming.ladp.*

com.sun.jndi.ldap.LdapCtxFactory

com.sun.jndi.ldap.ControlFactory

示例代码:

//build a hashtable containing all the necessary configuration parameters

Hashtable environment = new Hashtable();

environment.put(LdapContext.CONTROL_FACTORIES, conf.getProperty(“ldap.factories.control”));

environment.put(Context.INITIAL_CONTEXT_FACTORY, conf.getProperty(“ldap.factories.initctx”));

environment.put(Context.PROVIDER_URL, conf.getProperty(“ldap.host”));

environment.put(Context.SECURITY_AUTHENTICATION, “simple”);

environment.put(Context.SECURITY_PRINCIPAL, conf.getProperty(“ldap.user”));

environment.put(Context.SECURITY_CREDENTIALS, conf.getProperty(“ldap.password”));

environment.put(Context.STATE_FACTORIES, “PersonStateFactory”);

environment.put(Context.OBJECT_FACTORIES, “PersonObjectFactory”);

// connect to LDAP

DirContext ctx = new InitialDirContext(environment);

// Specify the search filter

String FILTER = “(&(objectClass=Person) ((sAMAccountName=” + user.getUsername() + “)))”;

// limit returned attributes to those we care about

String[] attrIDs = { “sn”, “givenName” };

SearchControls ctls = new SearchControls();

ctls.setReturningAttributes(attrIDs);

ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);

// Search for objects using filter and controls

NamingEnumeration answer = ctx.search(searchBase, FILTER, ctls);

SearchResult sr = (SearchResult) answer.next();

Attributes attrs = sr.getAttributes();

surName = attrs.get(“sn”).toString();

givenName = attrs.get(“givenName”).toString();

在这个例子中,我有一个Configuration对象,它从配置文件中读取这些值.

价值观将是:

# LDAP parameters

ldap.host = ldap://ldap.mydomain.com:389

ldap.factories.initctx = com.sun.jndi.ldap.LdapCtxFactory

ldap.factories.control = com.sun.jndi.ldap.ControlFactory

ldap.searchbase = dc=mydomain,dc=us

ldap.user = MYDOMAIN.COM\\ldap-user

ldap.userBase= MYDOMAIN.COM\\

ldap.password = ******

标签:gxt,java,ldap

来源: https://codeday.me/bug/20191004/1853865.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146696.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 几种经典的下肢力量练习方式

    几种经典的下肢力量练习方式

    2021年9月15日
    88
  • c++ stl源码剖析_stl源码 qt源码

    c++ stl源码剖析_stl源码 qt源码C++stl库手写前言序列式关联式容器适配器ListVector函数dequestringstackqueuebitset关联式容器setmultisetmultiset算法库仿函数前言stl版本abcd,四个版本,接口肯定是一样的代码复用性强,效率高,通用性高,vectordeque他有六个组件,空间配置器,容器,迭代器,算法,仿函数,容器适配器容器和算法中间,靠迭代器连接算法为了通用性,有辅助的东西,让算法通用,也就是使用仿函数仿函数就是一个对象容器通过适配器,可以相

    2022年10月15日
    3
  • URLEncoder转换字符串问题

    URLEncoder转换字符串问题今天在开发过程中遇到了一个坑,关于使用URLEncoder去encode字符串的问题,是解析一个下载地址,由于下载文件名中含有空格,导致encode之后所有空格变成了“+”,url拼接自然就出错了,下载地址相应不到报了404异常,由于之前没接触过这方面的事情,也算是给自己挖了一个小坑,特此记录一下。这段是业务背景,不想看的直接跳到下一段看解决办法哈。大概是这样,公司网站原本下载各种附件的地…

    2022年6月29日
    28
  • Qt Mac 在软件 icns图标制作

    Qt Mac 在软件 icns图标制作

    2022年1月7日
    276
  • linux查看当前目录下的全路径

    使用pwd命令可查看当前目录下的全路径。当然,也可以使用manpwd查看帮助。

    2022年4月13日
    242
  • FASTAI_AI领域

    FASTAI_AI领域Fastai简介在深度学习领域,最受学生欢迎的MOOC课程平台有三个:Fast.ai、deeplearning.ai/Coursera和Udacity。Fastai作为其中之一,是一个课程平台,一个讨论社区,也是一个PyTorc的顶层框架。Fastai的理念就是:Makingneuralnetsuncoolagain,让神经网络没那么望而生畏,其课程也是采用项目驱动的方式教学。经过Fa…

    2025年10月2日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号