当尝试使用简单的LDAP应用程序连接到LDAP服务器时,我得到一个错误,上面写着“simple bind Failed”。我想这和某种绑定有关。我在一个不同应用程序的属性文件中有一个绑定属性,但不确定如何将该属性传递给这个程序。
import javax.naming.directory.*;
import javax.naming.*;
import java.util.Vector;
import java.util.Enumeration;
import java.util.Properties;
public class SearchLDAP {
public static void main(String[] args) {
String base = "";
String filter = "(objectclass=*)";
Properties env = new Properties();
env.put(DirContext.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(DirContext.PROVIDER_URL,"ldaps://misguided.com.au:343");
try {
System.out.println("11");
DirContext dc = new InitialDirContext(env);
System.out.println("22");
SearchControls sc = new SearchControls();
sc.setSearchScope(SearchControls.OBJECT_SCOPE);
NamingEnumeration ne = null;
ne = dc.search(base, filter, sc);
while (ne.hasMore()) {
SearchResult sr = (SearchResult) ne.next();
System.out.println(sr.toString()+"\n");
}
dc.close();
} catch (NamingException nex) {
System.err.println("Error: " + nex.getMessage());
nex.printStackTrace();
}
}
}
错误
11
Error: simple bind failed: XXXX.XXX.XXXX.net:808
javax.naming.CommunicationException: simple bind failed: misguided.com.au:343 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:215)
at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2740)
at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:316)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:193)
这个问题现在有点老了,但相当普遍。试图简单地解释一下:
发生此问题的原因是JRE密钥库中缺少SSL证书。
对于LDAPS或HTTPS连接,java运行库需要使用相应的SSL证书来创建与另一端服务器的安全连接。
keytool –import -file adserv.crt -keystore <location to keystore>
当它丢失时,你会得到一个:
"sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target".
因此,您需要做的只是在建立安全连接之前安装证书。
我是Maven的新手,运行Eclipse Neon,m2e插件Maven 3.3.9: 在保存时生成此错误
主要内容:1 简单数据绑定的映射关系,2 简单数据绑定的示例数据绑定API用于使用属性访问器或使用注解将JSON与POJO(普通Java对象)进行转换。它有两种类型。 简单数据绑定:在List,String,数值类型,布尔值和NULL对象之间来回转换JSON。 完全数据绑定:将JSON与任何Java类型相互转换。 ObjectMapper读取/写入两种类型的数据绑定的JSON。数据绑定是最方便的方法,类似于XML的JAXB解析器。 1 简单数据绑定的映射关
我想学习如何编写JUnit测试,但我完全失败了。 这是我的测试: 问题是这个简单的断言已经失败了。返回的列表是空的。我知道,我对这一切都不熟悉,但是从我的角度来看,失败是如此出乎意料,以至于我没有办法解决这个问题。 以下是全部代码(不太多): 要测试的功能就是这个,我知道它是有效的: 实际上,我只是想学习如何编写这样的测试,但是几天来我一直没有写出来。有相当多的例子和解释,但是不管我做什么尝试,我
我正在尝试将我的Java应用程序导出到Mac。该应用程序基于编译器兼容级别1.7。我尝试了不同的方法来捆绑应用程序。 1)Eclipse。我可以用来在Eclipse上导出的JVM的最新版本是1.6*。 2)Maven。在Maven上似乎也存在同样的问题。当我使用以下命令时,它显示了一个版本相关的错误。 Maven命令 Maven返回的错误 而且
我正在将一个kotlin库绑定到xamarin android,绑定并解决所有错误后,我得到了一个意外错误,没有任何解释或异常原因, JAVALang.NoClassDefFoundError:“未能解析:Landroidx/viewbinding/viewbinding;” 这是我得到的堆栈痕迹: MAYActivity.cs:40在Android。App.活动。n_OnCreate_Landr
我是spring Boot的初学者,我尝试使用thymeleaf表单进行简单登录,它接受输入的名称和密码,并将其与存储在id为1的数据库中的用户的名称和密码进行比较。我的控制器是: 我的html表单如下: 有什么问题吗 控制器无法重新识别对象th: ject="${user}",因此我将此方法更改为: 对此: 现在一切顺利