Java - 使用 linux 访问远程活动目录
Java - Access to remote active directory with linux
我的问题是我必须将应用程序部署到 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
我找了很多,但我找不到任何东西。
- HOST 变量的格式应为
ldap://<IP_or_hostname>:389
- 如果您使用主机名,那么您应该检查它是否可以从您的 linux 服务器解析为 IP 地址。也许您需要将此主机名添加到服务器主机文件中。
我的问题是我必须将应用程序部署到 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
我找了很多,但我找不到任何东西。
- HOST 变量的格式应为
ldap://<IP_or_hostname>:389
- 如果您使用主机名,那么您应该检查它是否可以从您的 linux 服务器解析为 IP 地址。也许您需要将此主机名添加到服务器主机文件中。