让我们使用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一样工作。我的理解是对的吗?
答案 0 :(得分:1)
应用程序执行时如何工作?
JNDI找到适合您指定的Context.PROVIDER_URL
的JNDI SPI:在本例中为LDAP提供程序。
对于什么需要SPI?
见上文。
据我所知,客户端基于JNDI的应用程序向目录服务器发送了请求
停在那儿。客户端向JNDI发送请求,JNDI将其发送到JNDI SPI,后者将其发送到目录服务器
使用特定的SPI。
没有。往上看。目录服务器对JNDI SPI一无所知。
此SPI解析来自客户端的请求并作出响应。
没有。目录服务器就是这样做的。
因此,SPI就像Java EE中的servlet一样。
没有
我的理解是对的吗?
没有