SSL连接在控制台应用程序中可用,但不能用于Glassfish

问题描述:

我无法连接到JSP应用程序中的LDAP服务器。我正在GlassFish v2上运行应用程序。下面的代码工作以及在控制台应用程序,但在JSP中使用时失败:SSL连接在控制台应用程序中可用,但不能用于Glassfish

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");