Java - 使用linux访问远程活动目录

时间:2015-03-10 15:48:18

标签: java linux active-directory ldap

我的问题是我必须将应用程序部署到linux服务器上。身份验证基于远程活动目录。一切都运行正常,但由于我已部署到Linux服务器上,我的身份验证不再有效。

这是我的身份验证码:

public boolean connectUser(String login, String password) {



    Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, HOST);

    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, login+"@nazoos.com");
    env.put(Context.SECURITY_CREDENTIALS, password);

    // Create the initial context
    try {
        DirContext ctx = new InitialDirContext(env);
        Log.getLogger().debug("UserService : Connexion ==> OK ");
        return true;

    } catch (NamingException e) {

        Log.getLogger().debug("UserService : Erreur Connexion :"+e.getMessage());
        return false;

    }


}

这是我的错误

Caused by: java.net.UnknownHostException: nazoos.com
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:208)
    at com.sun.jndi.ldap.Connection.createSocket(Connection.java:368)
    at com.sun.jndi.ldap.Connection.<init>(Connection.java:203)
    ... 54 more

我搜索了很多,但找不到任何东西。

1 个答案:

答案 0 :(得分:1)

  1. HOST变量应具有格式ldap://<IP_or_hostname>:389
  2. 如果您使用主机名,那么您应该检查它是否可以从您的Linux服务器解析为IP地址。也许您需要将此主机名添加到服务器主机文件中。