让我们使用JNDI API。我们尝试连接到te目录服务器:
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.PROVIDER_URL, "ldap://ldap.wiz.com:389");
env.put(Context.SECURITY_PRINCIPAL, "joeuser");
env.put(Context.SECURITY_CREDENTIALS, "joepassword");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
应用程序执行时如何工作?什么需要
SPI
?据我了解,基于JNDI的客户端应用程序向目录服务器发送了请求,该服务器使用特定的SPI。此SPI解析来自客户端的请求并作出响应。因此,SPI的工作方式类似于Java EE中的servlet。我的理解正确吗? 最佳答案
应用程序执行时如何工作?
JNDI找到适合您指定的Context.PROVIDER_URL
的JNDI SPI:在这种情况下,是LDAP提供程序。
SPI需要什么?
往上看。
据我了解,客户端基于JNDI的应用程序将请求发送到目录服务器
停在那儿。客户端将请求发送到JNDI,JNDI将请求发送到JNDI SPI,JNDI SPI将请求发送到目录服务器
其使用特定的SPI。
否。请参见上文。目录服务器对JNDI SPI一无所知。
此SPI解析来自客户端的请求并作出响应。
否。目录服务器执行了该操作。
因此,SPI的工作方式类似于Java EE中的servlet。
没有。
我的理解正确吗?
没有。
关于java - JNDI API如何运作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20211629/