diff --git a/hutool-core/src/main/java/cn/hutool/core/util/JNDIUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/JNDIUtil.java index 2dc140d87..c6c242e5d 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/JNDIUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/JNDIUtil.java @@ -6,6 +6,7 @@ import cn.hutool.core.map.MapUtil; import javax.naming.InitialContext; import javax.naming.NamingException; +import javax.naming.directory.Attributes; import javax.naming.directory.InitialDirContext; import java.util.Hashtable; import java.util.Map; @@ -15,6 +16,10 @@ import java.util.Map; * JNDI是Java Naming and Directory Interface(JAVA命名和目录接口)的英文简写,
* 它是为JAVA应用程序提供命名和目录访问服务的API(Application Programing Interface,应用程序编程接口)。 * + *

+ * 见:https://blog.csdn.net/u010430304/article/details/54601302 + *

+ * * @author loolY * @since 5.7.7 */ @@ -53,4 +58,20 @@ public class JNDIUtil { throw new UtilException(e); } } + + /** + * 获取指定容器环境的对象的属性
+ * 如获取DNS属性,则URI为类似:dns:hutool.cn + * + * @param uri URI字符串,格式为[scheme:][name]/[domain] + * @param attrIds 需要获取的属性ID名称 + * @return {@link Attributes} + */ + public static Attributes getAttributes(String uri, String... attrIds) { + try { + return createInitialDirContext(null).getAttributes(uri, attrIds); + } catch (NamingException e) { + throw new UtilException(e); + } + } } diff --git a/hutool-core/src/test/java/cn/hutool/core/util/JNDIUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/JNDIUtilTest.java new file mode 100755 index 000000000..040f75d6d --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/util/JNDIUtilTest.java @@ -0,0 +1,21 @@ +package cn.hutool.core.util; + +import cn.hutool.core.collection.EnumerationIter; +import cn.hutool.core.lang.Console; +import org.junit.Ignore; +import org.junit.Test; + +import javax.naming.directory.Attribute; +import javax.naming.directory.Attributes; + +public class JNDIUtilTest { + + @Test + @Ignore + public void getDnsTest(){ + final Attributes attributes = JNDIUtil.getAttributes("dns:hutool.cn", "TXT"); + for (Attribute attribute: new EnumerationIter<>(attributes.getAll())){ + Console.log(attribute); + } + } +}