-->

具有匹配JSSE(SSL)的源代码和匹配的可运行JDK / JRE JDK / JRE源代码?(JD

2019-09-01 20:47发布

我已经看到了在哪里可以找到的Java 6 JSSE / JCE源代码? 和设问自己如何获得JRE / JDK相匹配的来源? 但我没有这些要么是不够具体,得到的答案我是真的后,所以我要去尝试的方式的问题更加具体的版本。

基本上,我试图解决的问题是,我希望能够在Windows上使用我的Eclipse调试器,并进入Java的SSL类(JSSE)来帮我调试SSL问题以及刚刚了解的SSL过程中更好。 BTW我所熟悉的(和使用)的javax.net.debug = SSL |所有的系统属性来获取SSL跟踪和,虽然这是非常有帮助的,我还是希望能够步那个讨厌的代码。

所以我觉得我特别需要的是:

  1. 一个可执行的JRE / JDK实现(不想建立一个)...
  2. 运行我的Windows平台(XP)上...
  3. 这包括源...
  4. 这源包括SSL“位”(JSSE等)...
  5. 理想情况下的SSL实现是Sun公司或OpenJDK的版本。

我认为最接近的事情(如PW的回答指出的StackOverflow:87106 )是在OpenJDK源在发现了OpenJDK-6-SRC-b12-28_aug_2008.tar.gz 的OpenJDK 6源代码发布 ,但我不知道有匹配的可执行文件JDK / JRE的,这将在Windows上运行。

Answer 1:

你可以得到JSSE LIB(开放JDK实现)的源代码在这里- http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/file/4d6c03fb1039/src/share/classes/sun/security/ SSL

步骤来创建源jar文件用于连接到用于调试的IDE。

  1. 上面去一点点在目录结构即http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/file/4d6c03fb1039/src/share/classes/回购。
  2. 通过单击“压缩”,或者你在左窗格中看到“GZ”链接下载的源码包。
  3. 但是,这个包是巨大的,其中包含数千个* .java文件。 你通常不希望所有的这些只是调试jsse.jar代码。
  4. 因此,更好的副本只有sun.security.rsa,sun.security.ssl,sun.security.provider&com.sun.net.ssl封装到一个新的文件夹(可以说JSSE代码)在您的计算机上。
  5. 进入该文件夹的命令行和创建你自己的源罐子。
    例如罐子-cvf JSSE-src.jar *
  6. 你完成了。 你现在有你的JSSE源lib中,你可以连接到您的首选IDE(如 - 的Eclipse)调试JSSE代码。

谢谢
阿亚斯



Answer 2:

我用Java 6的OpenJDK的下载:

http://download.java.net/openjdk/jdk6/

要调试JSSE / SSL代码,我用在sun.security.sslsun.security.ec包中找到的类并创建一个新库。 不幸的是,仅仅有所有的源库是不够的我。 我无法弄清楚如何让我的IDE(Netbeans的)步入JSSE代码。 相反,它是叫我的JDK捆绑在一起的JSSE。

作为一种变通方法,我结束了重构的SSL和ec封装到一个新的“提供者”。 这是我做的:

  1. 改名SunJSSESSLProvider并在代码改为“SunJSSE”的所有引用。
  2. 重构sun.security.sslsun.security.ec到2个新包:javaxt.ssljavaxt.ec
  3. 查找/所有引用替换到代码的原始包名。 例如,在SSLProvider.java类,取代“sun.security.ssl.SSLContextImpl”与“javaxt.ssl.SSLContextImpl”。

有一次,我有一个新的安全提供者,我可以在我的代码明确地引用它。 例:

  java.security.Provider provider = new javaxt.ssl.SSLProvider();
  java.security.Security.addProvider(provider);
  SSLContext sslc = SSLContext.getInstance("TLS", "SSLProvider");

通过明确设置安全提供者,我现在可以删除断点,扔掉打印语句我的心脏的内容:-)

如果有人有兴趣,我已经发布了“SSLProvider”源这里的一个zip压缩包:

http://www.javaxt.com/download/?/jsse/SSLProvider.zip



Answer 3:

你可以从它的Mercurial库按照以下步骤来创建源zip文件用于连接到调试的IDE JSSE LIB(开放JDK实现)的源代码。

  1. 让您的Java构建版本(在我的构建是1.8.0_181-B13)

     java -version 

    也许你会得到这样的结果:

     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) 
  2. 现在,我们可以找到我们的版本节点此库 。 在我的情况,我的标签将jdk8u181-B13,因为我的版本是1.8.0_181-B13和其节点将0cb452d66676记得Java版本是jdk8u。 我们可以通过单击“压缩”,或者你在左窗格中看到和手动重新包装为ZIP“GZ”链接下载的源码包。 或者只选择您需要的软件包。

  3. 在这个例子中,我会下载所有的目录下的包classes 。 为此,更换版本jdk8u和节点0cb452d66676在此脚本下载源代码,并重新包装它作为一个src zip文件。

     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 . 
  4. 源添加到您的IDE和快乐编码。

注意:在这个仓库,可用版本是:

  • JDK6
  • JDK7
  • jdk7u
  • jdk8
  • jdk8u
  • jdk9
  • jdk10


Answer 4:

Sun实现不是开源的,据我所知。 你可以在这里下载一个开源的JCE:

http://www.bouncycastle.org/java.html



Answer 5:

作为事实上,SSL实施包括在OpenJDK的来源,但由于某种原因未在标准中源Zip文件。 我不知道为什么。

我不知道,其中一个通常会取OpenJDK的来源; 我通过让他们在Debian apt-get source openjdk-6 。 SSL实现源在jdk/src/share/classes/javax/net/ssl



Answer 6:

针对在Sun Java版本的JSSE源代码通过前身是可用的太阳社区源代码许可计划 。 由于甲骨文收购它似乎已经消失了,但我希望我是错了。



Answer 7:

我终于实现了在Mac OS X海伊谢拉10.13.4以下运行Eclipse露娜和javac 1.8.0_171

在Ubuntu的机器同时运行开放JDK和javac 1.8.0_171

apt-get install openjdk-8-source

cd tmp

unzip /usr/lib/jvm/openjdk-8/src.zip "sun/security/*"

zip -r jsse-src sun 

我不包括COM /阳光/ NET / SSL的东西,但在我的情况不够好。

然后我复制jsse-src.zip在MAC /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/并指出蚀了这一点。



Answer 8:

在这之后,你可以下载OpenJDK的:

https://adoptopenjdk.net/

和完全匹配它从源代码

https://github.com/AdoptOpenJDK/openjdk-jdk8u

目前u172-B11是最新的版本,但他们在同步和在所有平台上正常工作。



文章来源: JDK/JRE source code with matching JSSE (SSL) source code and matching runnable JDK / JRE?
标签: java ssl jsse