Java JDK/JRE源代码与匹配的JSSE(SSL)源代码和匹配的可运行JDK/JRE?
我见过 我自己也问了这个问题 但我不认为这两个问题都足够具体,可以得到我真正想要的答案,所以我将尝试一种更具体的方式来回答这个问题 基本上,我试图解决的问题是,我希望能够在Windows上使用Eclipse调试器,并进入Java SSL类(JSSE),以帮助我调试SSL问题,以及更好地理解SSL过程。顺便说一句,我熟悉(并使用)javax.net.debug=ssl | all系统属性来获取ssl跟踪,虽然这非常有用,但我仍然希望能够逐步完成这段讨厌的代码 所以我认为我特别需要的是:Java JDK/JRE源代码与匹配的JSSE(SSL)源代码和匹配的可运行JDK/JRE?,java,ssl,jsse,Java,Ssl,Jsse,我见过 我自己也问了这个问题 但我不认为这两个问题都足够具体,可以得到我真正想要的答案,所以我将尝试一种更具体的方式来回答这个问题 基本上,我试图解决的问题是,我希望能够在Windows上使用Eclipse调试器,并进入Java SSL类(JSSE),以帮助我调试SSL问题,以及更好地理解SSL过程。顺便说一句,我熟悉(并使用)javax.net.debug=ssl | all系统属性来获取ssl跟踪,虽然这非常有用,但我仍然希望能够逐步完成这段讨厌的代码 所以我认为我特别需要的是: 一个可执行
我认为最接近的东西(如PW的回答中所述)是在找到的OpenJDK源代码OpenJDK-6-src-b12-28_aug_2008.tar.gz,但我不确定是否有与之匹配的可执行JDK/JRE可以在Windows上运行。据我所知,Sun实现不是开源的。您可以在此处下载开源JCE:
事实上,SSL实现包含在OpenJDK源代码中,但由于某些原因,它没有包含在标准源代码Zip文件中。我不知道为什么
我不知道通常从哪里获取OpenJDK源代码;我通过apt-get-source-openjdk-6在Debian上获得了它们。SSL实现源代码位于
jdk/src/share/classes/javax/net/SSL
我使用了Java 6的OpenJDK下载:
为了调试JSSE/SSL代码,我使用了sun.security.SSL和sun.security.ec包中的类,并创建了一个新库。不幸的是,仅仅拥有一个包含所有源代码的库对我来说是不够的。我不知道如何让我的IDE(Netbeans)进入JSSE代码。相反,它调用了与JDK捆绑在一起的JSSE
作为一种解决方法,我最终将ssl和ec包重构为一个新的“提供者”。以下是我所做的:
java.security.Provider provider = new javaxt.ssl.SSLProvider();
java.security.Security.addProvider(provider);
SSLContext sslc = SSLContext.getInstance("TLS", "SSLProvider");
通过显式设置安全提供程序,我现在可以删除断点并将打印语句抛出到我的心上:-)
如果有人感兴趣,我已经在这里发布了“SSLProvider”源的zip存档:
您可以在这里获得JSSE lib(开放JDK实现)的源代码- 创建源jar文件以附加到IDE进行调试的步骤
AyasSun Java版本的JSSE源代码以前可通过。自从Oracle收购以来,它似乎已经消失了,但我希望我是错的。我最终在运行eclipse luna和javac 1.8.0_171的Mac OS X High Sierra 10.13.4上做了以下工作 在同样运行OpenJDK和JavaC1.8.0_171的ubuntu机器上
apt get install openjdk-8-source
cd-tmp
解压/usr/lib/jvm/openjdk-8/src.zip“sun/security/*”
zip-r jsse src sun
我没有包括com/sun/net/ssl内容,但在我的例子中已经足够好了
然后我将
jsse src.zip
复制到mac上的/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/
,并将eclipse指向该位置。接下来,您可以下载OpenJDK:
并将其与源代码完全匹配
目前,u172-b11是最新版本,但它们是同步的,可以在所有平台上工作。您可以按照以下步骤从其mercurial存储库获取JSSE lib(开放JDK实现)的源代码,以创建一个源zip文件,用于附加到IDE进行调试
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
version=jdk8u
node=0cb452d66676
mkdir ~/temp
cd ~/temp
wget http://hg.openjdk.java.net/$version/$version/jdk/archive/$node.zip/src/share/classes/
unzip $node.zip -d $version-$node
cd jdk-$node/src/share/classes/
zip -r $version-$node-src.zip .