我有一個帶有兩個NIC的服務器,我需要指定必須使用哪個NIC連接到後端LDAP。具有多個網絡接口的Java LDAP
我知道在Java中,可以在創建套接字時指定NIC(http://docs.oracle.com/javase/tutorial/networking/nifs/definition.html),但我怎樣才能使用 JNDI/LDAP框架來做到這一點?
謝謝
我有一個帶有兩個NIC的服務器,我需要指定必須使用哪個NIC連接到後端LDAP。具有多個網絡接口的Java LDAP
我知道在Java中,可以在創建套接字時指定NIC(http://docs.oracle.com/javase/tutorial/networking/nifs/definition.html),但我怎樣才能使用 JNDI/LDAP框架來做到這一點?
謝謝
您需要做的是獲取對JNDI創建套接字的過程的控制。爲此,您需要告訴JNDI使用哪個SocketFactory
。
構建InitialLdapContext
時,您可以提供一個Hashtable
。
Hashtable props = new Hashtable();
props.put("java.naming.ldap.factory.socket", "com.whatever.MySocketFactory");
InitialLdapContext ic = new InitialLdapContext(props, null);
當com.whatever.MySocketFactory
是你自己的類,延長javax.net.SocketFactory
。
我覺得有一個在JDK恆定某處java.naming.ldap.factory.socket
,但我不能找到它...
或者你可以使用:
env.put(Context.PROVIDER_URL, "ldap://<specific IP Address>:636/o=JNDITutorial");
-Jim
他正在談關於NIC,即本地地址,不是目標地址。 -1 – EJP