2014-01-26 4 views
0

Я работаю над проектом для своего университета, который является мобильным приложением для moodle ... мы делаем это, используя телефонный пробел. Мой вопрос: как мы можем выполнить проверку подлинности на сервере LDAP. Как мы можем получить информацию из LDAP в целом.LDAP-сервер - мобильное приложение

ответ

0

Стандартные классы JNDI в Java не так уж трудно понять. В основном:

  1. Создать объект LdapContext с параметрами соединения для сервера
  2. Perform аутентификации
  3. запроса сервер LDAP для данных с использованием проверенного соединения

Некоторые образцы кода из моего текущего проекта ,

Этап 1 и 2: Создайте аутентифицированное соединение с помощью «userdn» и «password».

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.

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

Атрибуты вы получите доступ к данным сп = ваш, НУ = объект, объект O = дп. Удачи!

0

Общий подход заключается в использовании реализации Java, обеспечивающей функциональность клиента LDAP (например, Unboundit LDAP SDK для Java), а также разработать plugin для раскрытия функциональности внутри веб-представления.

Смежные вопросы