Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android LDAP服务器-移动应用程序_Android_Jquery Mobile_Cordova_Ldap - Fatal编程技术网

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

Android LDAP服务器-移动应用程序,android,jquery-mobile,cordova,ldap,Android,Jquery Mobile,Cordova,Ldap,我正在为我的大学做一个项目,这是一个moodle的移动应用程序。。。我们正在使用phone gap进行验证,我的问题是如何对LDAP服务器进行身份验证检查。一般来说,我们如何从LDAP检索信息。通常的方法是使用Java实现提供LDAP客户端功能(例如,LDAP SDK for Java),并开发一个用于在web视图中公开功能的应用程序。Java中的默认JNDI类并不难理解。基本上: 使用服务器的连接参数创建LdapContext对象 执行身份验证 使用经过身份验证的连接查询LDAP服务器的数据

我正在为我的大学做一个项目,这是一个moodle的移动应用程序。。。我们正在使用phone gap进行验证,我的问题是如何对LDAP服务器进行身份验证检查。一般来说,我们如何从LDAP检索信息。

通常的方法是使用Java实现提供LDAP客户端功能(例如,LDAP SDK for Java),并开发一个用于在web视图中公开功能的应用程序。

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

  • 使用服务器的连接参数创建LdapContext对象
  • 执行身份验证
  • 使用经过身份验证的连接查询LDAP服务器的数据
  • 我当前项目中的一些示例代码

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

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

        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;
    }
    
        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) {}
        }
    }