1.javax.crypto.Cipher; javax.crypto.KeyGenerator;这两个类库在哪?
2.jbuilder2006安装完了后,把.java文件添加到工程后,运行工程,为什么出错呢
3.一次MySQL Connector升级引发连接失败的排查之路
4.怎么在JDK中找到jsse扩展包
5.JAVAå¦ä¹ ç¬è®°JDK6å7çåºå«ï¼
javax.crypto.Cipher; javax.crypto.KeyGenerator;这两个类库在哪?
两种方式,导入:由于默认是不包含安全相关包
1、删除整个依赖包,cad标注源码重新倒入java系统包,会包含进去
a、删除包
b、添加包
c、选择JRE 系统包
d、选择默认的工作空间的jre包
e、可以看到jce(Java Cryptography Extension)、csframework源码jsse(Java Secure Sockets Extension)、这些安全包已经导入了
2、主动倒入缺少的安全包,下面截图是位置所在
eg:
jbuilder安装完了后,把.java文件添加到工程后,运行工程,为什么出错呢
没有在Library下配JAR包,,
避免加得不全,你就把所有得架包一齐加上就OK啦,,不过,肯定加了有部分没用得,,threadlocalmap源码不过也不会碍事得!
要是你那没有那么多包,加我QQ,我在详细告诉你包名!!
一次MySQL Connector升级引发连接失败的排查之路
农行研发中心“数风云”团队,致力于农行大数据、数据库和云计算等领域的应用实践与技术创新。郭斌斌,作为爱可生DBA团队的一员,专注于MySQL数据库及爱可生云树DMP产品的日常运维,擅长数据库故障处理。cmt源码
现象描述:在升级IBM jdk1.8.0至8.0.版本后,使用mysql-connector-java-8.0.进行升级,却遇到“javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)”的连接失败问题。在使用openjdk 1.8版本时,升级MySQL驱动能够正常连接。
初步分析:怀疑是IBM jdk1.8版本中支持的协议或加密套件老旧,导致SSL连接握手失败。
分析过程:
1. 官网资料分析:MySQL驱动在尝试连接MySQL 8.0时,会尝试使用TLS版本:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。ecb源码驱动TLS配置文件TlsSettings.properties中Cipher suites已预先进行了限制,且MySQL支持的Cipher suites均已TLS开头。然而,8.0.版本的驱动没有此配置文件。
2. IBM JSSE2支持的协议和套件:IBM JSSE2默认支持协议:SSL, TLS, TLSv1, TLSv1.1, TLSv1.2。部分Cipher suites在ORACLE中以“TLS”开头,而在IBM SDK中以”SSL”开头。IBM JSSE2中个Cipher suites中个以SSL开头,4个以TLS开头。
3. 抓包分析:通过脚本分析,发现IBM jdk1.8+mysql-connector-java-8.0.组合下,日志显示依次尝试使用TLS、TLS、TLS、TLS协议,但没有可用的加密套件。在添加com.ibm.jsse2.overrideDefaultCSName=true参数后,成功连接MySQL。同时,添加javax.net.debug=true观察到握手阶段选择了TLSv1.2和cipher suite: TLS_ECDHE_RSA_WITH_AES__GCM_SHA。MySQL connector 8.0.在建立TLS连接时已选择TLSv1.2和cipher suite列表,列表中大部分cipher suite以“SSL”开头。
MySQL connector 8.0.未对cipher suite进行TLS限制,故能成功连接。驱动升级至8.0.或8.0.版本后,MySQL对cipher suite进行了限制,且均已TLS开头。而IBM JSSE2中的大部分套件仍保持以SSL开头的命名,导致连接握手失败。
解决方案:
1. 方案1:建议升级IBM jdk版本以兼容MySQL协议和加密套件,但此方案不可行。
2. 方案2:依据IBM官方文档建议将系统参数com.ibm.jsse2.overrideDefaultCSName设置为true。在IBM jdk1.8.0_+MySQL connector 8.0.上通过脚本调用方式连接成功。需在WAS中配置过程如下:服务器-您的服务器-进程定义-java虚拟机-定制属性,添加:com.ibm.jsse2.overrideDefaultCSName=true。最终需将WAS环境上的jdk升级至1.8.0_,并使用com.ibm.jsse2.overrideDefaultCSName=true才能生效。
3. 方案3:使用jdbc连接带上参数useSSL=false和allowPublicKeyRetrieval=true,连接成功。此方案作为IBM jdk升级之前的缓释方案供项目组临时采用。配置参数AllowPublicKeyRetrieval=True,需谨慎开启,避免恶意代理通过中间人攻击获取明文密码。
4. 方案4:尝试使用JDK 1.8.0_及额外参数,但未生效。
经过验证,最终采用方案2:升级jdk并使用com.ibm.jsse2.overrideDefaultCSName=true的组合方案。
欢迎广大技术人员投稿至:editor@dbaplus.cn
怎么在JDK中找到jsse扩展包
SSL协议通信涉及密钥储存的文件格式比较多,很容易搞混,例如xxx.cer、xxx.pfx、xxx.jks、xxx.keystore、xxx.truststore等格式文件。
搞清楚他们有助于理解后面的程序,.cer格式文件俗称证书,但这个证书中没有私钥,只包含了公钥;.pfx格式文件也称为证书,它一般供使用,而且它不仅包含了公钥,还包含了私钥,当然这个私钥是加密的,不输入密码是解不了密的;.jks格式文件表示java密钥存储器(javakey store),它可以同时容纳N个公钥跟私钥,是一个密钥库;
JAVAå¦ä¹ ç¬è®°JDK6å7çåºå«ï¼
æ°ç¹æ§ä¸è§è¡¨ï¼
Swing
æ°å¢ JLayer ç±»ï¼æ¯ä¸ä¸ªçµæ´»èä¸åè½å¼ºå¤§çSwingç»ä»¶ä¿®é¥°å¨ï¼ä½¿ç¨æ¹æ³ï¼How to Decorate Components with JLayer.
Nimbus Look and Feel å¤è§ä» com.sun.java.swing å ç§»å° javax.swing å ä¸ï¼è¯¦æ ï¼javax.swing.plaf.nimbus
æ´è½»æ¾çéé级åè½»é级ç»ä»¶çæ··å
æ¯æéæçªä½ä»¥åéç©å½¢çªä½çå¾å½¢çé¢ï¼è¯·ç How to Create Translucent and Shaped Windows
JColorChooser ç±»æ°å¢ HSV tab.
ç½ç»
æ°å¢ URLClassLoader.close æ¹æ³ï¼è¯·ç Closing a URLClassLoader.
æ¯æ Sockets Direct Protocol (SDP) æä¾é«æ§è½ç½ç»è¿æ¥ï¼è¯¦æ 请ç Understanding the Sockets Direct Protocol.
éå
æ°å¢ TransferQueue æ¥å£ï¼æ¯ BlockingQueue çæ¹è¿çï¼å®ç°ç±»ä¸º LinkedTransferQueue
RIA/åå¸
ææ½çå°ç¨åºä½¿ç¨ä¸ä¸ªé»è®¤æè å®å¶çæ é¢è¿è¡ä¿®é¥°ï¼è¯¦æ ï¼Requesting and Customizing Applet Decoration in Draggable Applets.
JNLP æ件åäºå¦ä¸æ¹é¢çå¢å¼ºï¼è¯¦æ 请ç JNLP File Syntax:
The os attribute in the information and resources elements can now contain specific versions of Windows, such as Windows Vista or Windows 7.
Applications can use the install attribute in the shortcut element to specify their their desire to be installed. Installed applications are not removed when the Java Web Start cache is cleared, but can be explicitly removed using the Java Control Panel.
Java Web Start applications can be deployed without specifying the codebase attribute; see Deploying Without Codebase
å¯ç´æ¥å¨ HTML ä¸åµå ¥ JNLP æ件ï¼Embedding JNLP File in Applet Tag.
å¯å¨ JavaScript 代ç ä¸æ£æ¥ Applet æ¯å¦å·²ç»å è½½å®æï¼Handling Initialization Status With Event Handlers.
å¯å¨ Applet ä»å¿«æ·æ¹å¼å¯å¨æè æåºæµè§å¨æ¶å¯¹çªå£æ ·å¼åæ é¢è¿è¡æ§å¶ï¼Requesting and Customizing Applet Decoration in Developing Draggable Applets.
XML
å å« Java API for XML Processing (JAXP) 1.4.5, æ¯æ Java Architecture for XML Binding (JAXB) 2.2.3, å Java API for XML Web Services (JAX-WS) 2.2.4.
java.lang å
æ¶é¤äºå¨å¤çº¿ç¨ç¯å¢ä¸çéå±æ¬¡è¯ç±»å è½½æ¶å¯¼è´çæ½å¨æ»éï¼è¯¦æ ï¼Multithreaded Custom Class Loaders in Java SE 7.
Java èææº
æ¯æé Java è¯è¨: Java SE 7 å¼å ¥ä¸ä¸ªæ°ç JVM æ令ç¨äºç®åå®ç°å¨æç±»åç¼ç¨è¯è¨
Garbage-First Collector æ¯ä¸ä¸ªæå¡å¨ç«¯çåå¾æ¶éå¨ç¨äºæ¿æ¢ Concurrent Mark-Sweep Collector (CMS).
æåäº Java HotSpot èææºçæ§è½
Java I/O
java.nio.file å 以åç¸å ³çå java.nio.file.attribute æä¾å¯¹æ件 I/O 以å访é®æ件系ç»çå ¨é¢æ¯æï¼è¯·ç File I/O (featuring NIO.2).
ç®å½ <Java home>/sample/nio/chatserver/ å å«ä½¿ç¨ java.nio.file å çæ¼ç¤ºç¨åº
ç®å½ <Java home>/demo/nio/zipfs/ å å« NIO.2 NFS æ件系ç»çæ¼ç¤ºç¨åº
å®å ¨æ§
æ°çå 置对å¤ä¸ªåºäº ECC ç®æ³(ECDSA/ECDH)çæ¯æï¼è¯¦æ 请çï¼Sun PKCS# Provider's Supported Algorithms in Java PKCS# Reference Guide.
ç¦ç¨äºä¸äºå¼±å å¯ç®æ³ï¼è¯¦æ 请ç Appendix D: Disabling Cryptographic Algorithms in Java PKI Programmer's Guide and Disabled Cryptographic Algorithms in Java Secure Socket Extension (JSSE) Reference Guide.
Java å®å ¨å¥æ¥åæ©å±ä¸å¯¹ SSL/TLS çå¢å¼º
并å
fork/join æ¡æ¶ï¼åºäº ForkJoinPool ç±»ï¼æ¯ Executor æ¥å£çå®ç°ï¼è®¾è®¡å®ç¨æ¥è¿è¡é«æçè¿è¡å¤§éä»»å¡ï¼ä½¿ç¨ work-stealing ææ¯ç¨æ¥ä¿è¯å¤§éç worker 线ç¨å·¥ä½ï¼ç¹å«éåå¤å¤çå¨ç¯å¢ï¼è¯¦æ 请ç Fork/Join
ç®å½<Java home>/sample/forkjoin/ å å«äº fork/join æ¡æ¶çæ¼ç¤ºç¨åº
ThreadLocalRandom ç±»class æ¶é¤äºä½¿ç¨ä¼ªéæºç 线ç¨çç«äºï¼è¯·ç Concurrent Random Numbers.
Phaser ç±»æ¯ä¸ä¸ªæ°çåæ¥çå±éï¼ä¸ CyclicBarrier 类似.
Java 2D
ä¸ä¸ªæ°çåºäº XRender ç Java 2D 渲æ管éæ¯æç°å¨ç X æ¡é¢ï¼æ¹åäºå¾å½¢æ§è½ï¼è¯·ç System Properties for Java 2D Technology ä¸ç xrender .
JDK å¯æ举并æ¾ç¤ºåºå·²å®è£ ç OpenType/CFF åä½ï¼éè¿GraphicsEnvironment.getAvailableFontFamilyNames æ¹æ³ See Selecting a Font.
TextLayout ç±»æ¯æ西èè¯èæ¬
libfontconfig, æ¯ä¸ä¸ªåä½é ç½® api ï¼see Fontconfig.
å½é å
æ¯æ Unicode 6.0.0
ç®å½ <Java home>/demo/jfc/Font2DTest/ å å« Unicode 6.0 çæ¼ç¤ºç¨åº
Java SE 7 å¯å®¹çº³å¨ ISO ä¸æ°çè´§å¸ï¼è¯¦æ 请ç Currency ç±».
Java ç¼ç¨è¯è¨ç¹æ§
äºè¿å¶æ°å表达æ¹å¼
使ç¨ä¸å线对æ°åè¿è¡åé表达ï¼ä¾å¦ 1__
switch è¯å¥æ¯æå符串åé
æ³åå®ä¾å建çç±»åæ¨æ
使ç¨å¯ååæ°æ¶ï¼æåç¼è¯å¨çè¦ååé误信æ¯
try-with-resources è¯å¥
åæ¶æè·å¤ä¸ªå¼å¸¸å¤ç
JDBC 4.1
æ¯æä½¿ç¨ try-with-resources è¯å¥è¿è¡èªå¨çèµæºéæ¾ï¼å æ¬è¿æ¥ãè¯å¥åç»æé
æ¯æ RowSet 1.1