3

我必须在java中做一个登录页面,它必须使用来自LDAP的凭据登录,有没有人有任何教程或示例我可以使用,因为我不知道从哪里开始

谢谢 !

4

2 回答 2

2

您应该使用具有许多实用程序和教程的 spring-security。

这是官方文档的链接:http: //forum.springsource.org/showthread.php?124263 -Basic-LDAP-Example-For-Spring-Security-3-1

顺便说一句,这是在纯 JNDI 中绑定到 ldap 服务器的代码:

/**
 * Returns the ldap context.
 * 
 * @param user the user name
 * @param password the password
 * @return the prepared context
 * @throws NamingException in case of...
 */
protected LdapContext buildContext(final String user, final String password) throws NamingException {
    String providerURL = new StringBuffer(getLdapScheme()) //
            .append("://") //
            .append(getLdapHost()) //
            .append(":") //
            .append(getLdapPort()) //
            .append("/") //
            .append(getLdapRootDN()).toString();

    Hashtable<String, String> properties = new Hashtable<>();
    properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

    properties.put(Context.PROVIDER_URL, providerURL);

    if (!isEmpty(user)) {
        // basic authentication
        properties.put(Context.SECURITY_AUTHENTICATION, "simple");
        properties.put(Context.SECURITY_PRINCIPAL, user);
        properties.put(Context.SECURITY_CREDENTIALS, defaultIfEmpty(password, ""));
    } else {
        // anonymous connection
        properties.put(Context.SECURITY_AUTHENTICATION, "none");
    }

    Control[] controls = null;

    LOGGER.info("creating new ldap context [url:{}, user: {}]", providerURL, user);

    return new InitialLdapContext(properties, controls);
}
于 2012-11-26T15:08:55.997 回答
0

你应该看看OpenLdap Java Library。他们有各种关于如何使用他们的工具包的代码示例。

于 2012-11-26T15:46:35.513 回答