java - JNDI API 的工作原理

标签 java jndi

让我们使用JNDI API。我们尝试连接到目录服务器:

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。我的理解对吗?

最佳答案

how it works when application execute?

JNDI 查找适合您指定的 Context.PROVIDER_URL 的 JNDI SPI:在本例中为 LDAP 提供程序。

For what needs SPI?

见上文。

As i understand, client-side JNDI-based application sent request to directory server

停在那里。客户端向 JNDI 发送请求,JNDI 将其发送至 JNDI SPI,JNDI SPI 将其发送至目录服务器

whose use specific SPI.

没有。往上看。目录服务器不知道有关 JNDI SPI 的任何信息。

This SPI parse the request from client and responded.

没有。目录服务器做到了这一点。

Thus SPI works like servlets in Java EE.

没有。

Is my understandig right?

没有。

关于java - JNDI API 的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211629/

相关文章:

Java LDAP - 无法验证用户身份

java - 如何修复 GridPane 上的标签堆叠在索引 (0,0) 上?它似乎忽略了我对该函数的输入

java - List<Number> 和 List< 有什么区别?扩展号码>?

java - 在 Tomcat 中使用 JNDI 关闭连接

Java - DBCP 与 JNDI?

java - 远程 JNDI 查找返回我自己的 EJB

java - 存储由 java servlet (Tomcat) 检索的大数据的最佳位置

java - 使用过滤仅从 Java8 中的文件夹中获取文件名

java - 尝试解密文件时无法在 Decryptor 处解析获取 Base64

java - 带 if 语句的 for 循环中的 stringbuilder