プログラマ38の日記

主にプログラムメモです。

Salesforce: Java8のバージョンを上げたらSalesforceIDEで通信エラーが発生した件

Salesforceへproxy host, proxy port, prox yuser, proxy passwordを指定して接続しています。
Java8のバージョンを上げたら次の接続エラーが出たので回避策のメモです。

 

[接続エラー内容]
Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 authenticationrequired"

f:id:crmprogrammer38:20170515103008p:plain

 

 

[回避策]
eclipse.iniに次のシステムプロパティを追加
「-Djdk.http.auth.tunneling.disabledSchemes=」

 

例 

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms40m
-Xmx512m
-Djdk.http.auth.tunneling.disabledSchemes=

[経緯]
Java 8 Update 111 (8u111)から、HTTPSトンネリングのBasic認証の無効化がされておりそれが原因でした。
上の回避策のプロパティを指定することで無効化が解除されるようです。
(なので、Java 8 でも Update110まではこのエラーになりません)

プロキシ経由、その際にユーザとパスワードが必要な環境で発生する可能性があります。

 

[所感]
tls1.0無効化でjava8に上げたら、上げたら上げたで別の通信の問題が待ってるという現実でした。通信周りはほんとに色々な問題がありますね。。