我在连接到我的 JSP 应用程序中的 LDAP 服务器时遇到问题。我在 GlassFish v2 上运行应用程序。以下代码在控制台应用程序中运行良好,但在 jsp 中使用时失败:
java.security.Security.addProvider(
new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.trustStore",
"C:\\Users\\Projects\\npope-PostiniSSO\\PostiniSSO\\ssltest.keystore");
LDAPJSSESecureSocketFactory ssf = new LDAPJSSESecureSocketFactory();
LDAPConnection conn = new LDAPConnection(ssf);
conn.connect( ldapHost, sslPort);
抛出的异常是:
LDAPException: Unable to connect to server 192.168.254.128:636 (91) Connect Error java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
class com.novell.ldap.LDAPException
我怀疑我缺少证书或一些配置,但找不到任何有用的信息。
最佳答案
我缺少以下行来设置 GlassFish 所需的属性:
System.setProperty("javax.net.ssl.keyStore",
"C:\\Users\\Nathan\\Projects\\npope-PostiniSSO\\PostiniSSO\\ssltest.keystore");
System.setProperty("javax.net.ssl.trustStorePassword",
"password");
System.setProperty("javax.net.ssl.keyStorePassword",
"password");
关于jsp - SSL 连接适用于控制台应用程序但不适用于 Glassfish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1189978/