首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LDAP服务器-移动应用程序

LDAP服务器-移动应用程序
EN

Stack Overflow用户
提问于 2014-01-26 11:06:25
回答 2查看 1.6K关注 0票数 0

我正在为我的大学做一个项目,这是一个移动应用程序,用于情绪化。我们使用的是电话间隔,我的问题是如何在LDAP服务器上进行身份验证检查。一般情况下,如何从LDAP检索信息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-27 15:42:54

Java中的默认JNDI类不难理解。基本上:

  1. 使用服务器的连接参数创建LdapContext对象
  2. 执行认证
  3. 使用已验证的连接查询LDAP服务器的数据

来自我当前项目的一些示例代码。

步骤1和2:使用"userdn“和"password”创建经过身份验证的连接。

代码语言:javascript
运行
复制
    private LdapContext getLdapContext( String userdn, String password )
{
    LdapContext ldapCtx = null;
    Hashtable<String, String> env = new Hashtable<String, String>(5, 0.75F);
    env.put( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
    if ( ldapPort.equals( "636" ) )
    {
        env.put( Context.SECURITY_PROTOCOL, "ssl");
        env.put("java.naming.ldap.factory.socket", "portal.ldap.util.PortalSocketFactory");
    }
    env.put( Context.PROVIDER_URL, "ldap://"
            + ldapHost + ":"
            + ldapPort );
    env.put( Context.SECURITY_AUTHENTICATION, "simple" );
    env.put( Context.SECURITY_PRINCIPAL, userdn );
    env.put( Context.SECURITY_CREDENTIALS, password );
    try {
        ldapCtx = new InitialLdapContext( env, null );
    } catch ( NamingException e ) {
        // Handle error
    }
    return ldapCtx;
}

步骤3:使用经过身份验证的连接从LDAP服务器读取对象。

代码语言:javascript
运行
复制
    private Attributes getAttrs()
{
    LdapContext ctx = getLdapContext();
    try
    {
        return ctx.getAttributes( "cn=your,ou=object,o=dn" , { "cn", "yourattribute" } );
    }
    catch (NamingException e)
    {
        // Handle error
    }
    catch (NullPointerException e)
    {
        // Handle error
    }
    finally
    {
        try {
            ctx.close();
        } catch (NamingException e) {}
    }
}

属性允许您访问cn=your、ou=object、o=dn对象的数据。祝好运!

票数 0
EN

Stack Overflow用户

发布于 2014-01-26 19:12:06

一般的方法是使用无赏金实现--提供LDAP客户端功能(例如,Java),并开发一个插件来公开web视图中的功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21362601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档