jsp - SSL 连接适用于控制台应用程序但不适用于 Glassfish

标签 jsp netbeans ssl ldap glassfish

我在连接到我的 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/

相关文章:

java - Netbeans 将外部文件夹添加到项目中(如 Eclipse 上的链接文件夹)

java - 从另一个 GUI 打开一个 GUI - Java Swing

c# - UWP HttpRequestMessage.TransportInformation 缺失

php - 如何找到哪些来源没有使用 ssl?

java - struts2中并行迭代两个ArrayList

java - 如何在 JSP 中显示数据库中的图像?

java - Servlet 资源不可用 HTTP 404

java - 从请求或响应 header 中隐藏 cookie

maven - 如何在NetBeans IDE中将Maven的远程存储库URL更改(从http更改为https)?

linux - 在没有 IP SAN 的情况下使用带有 SSL 证书的 Docker 注册表