Android LDAP服务器-移动应用程序
我正在为我的大学做一个项目,这是一个moodle的移动应用程序。。。我们正在使用phone gap进行验证,我的问题是如何对LDAP服务器进行身份验证检查。一般来说,我们如何从LDAP检索信息。通常的方法是使用Java实现提供LDAP客户端功能(例如,LDAP SDK for Java),并开发一个用于在web视图中公开功能的应用程序。Java中的默认JNDI类并不难理解。基本上: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服务器的数据
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) {}
}
}