Proxy Support

mss

Betreff:

Proxy Support

 ·  Gepostet: 07.12.2017 - 11:01 Uhr  ·  #135911
Hallo,

Jameica hat grundsätzlich Proxy support, es ist mir aber nun schon öfter vorgekommen, dass die Plugins das nicht immer unterstützen. Scheinbar müssen Plugins das selbst nochmal implementieren.
SOCKS Support fehlt bei Jameica auch.

Für solche Fälle ist oft tsocks die Notlösung, womit eigentlich alles transparent über den Tunnel geschickt werden kann. Bei jameica funktioniert das scheinbar nicht und ich weiß nicht, was Java da anders macht. In der tsocks Umgebung funktionieren z.B. die Plugin Updates, aber HBCI bricht ab:
Code
[Thu Dec 07 10:06:08 CET 2017][ERROR][bg-task:Worker][de.willuhn.jameica.hbci.HBCICallbackSWT.log] org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Senden der HBCI-Nachricht zum Server
  at org.kapott.hbci.comm.CommPinTan.ping(CommPinTan.java:157)
  at org.kapott.hbci.comm.Comm.pingpong(Comm.java:72)
  at org.kapott.hbci.manager.HBCIKernelImpl.rawDoIt(HBCIKernelImpl.java:352)
  at org.kapott.hbci.manager.HBCIDialog.doJobs(HBCIDialog.java:293)
  at org.kapott.hbci.manager.HBCIDialog.doIt(HBCIDialog.java:410)
  at org.kapott.hbci.manager.HBCIHandler.execute(HBCIHandler.java:515)
  at de.willuhn.jameica.hbci.synchronize.hbci.HBCISynchronizeBackend$HBCIJobGroup.sync(HBCISynchronizeBackend.java:307)
  at de.willuhn.jameica.hbci.synchronize.AbstractSynchronizeBackend$Worker.run(AbstractSynchronizeBackend.java:403)
  at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1057)
Caused by: java.net.SocketTimeoutException: connect timed out
  at java.net.PlainSocketImpl.socketConnect(Native Method)
  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
  at java.net.Socket.connect(Socket.java:589)
  at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673)
  at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
  at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
  at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
  at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
  at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
  at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156)
  at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1040)
  at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1038)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:782)
  at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1037)
  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162)
  at org.kapott.hbci.comm.CommPinTan.ping(CommPinTan.java:147)
  ... 8 more org.kapott.hbci.manager.HBCIUtils.log(HBCIUtils.java:1603)
[Thu Dec 07 10:06:08 CET 2017][ERROR][bg-task:Worker][de.willuhn.jameica.hbci.HBCICallbackSWT.log] aborting current loop because of errors org.kapott.hbci.manager.HBCIDialog.doJobs(HBCIDialog.java:329)

tsocks unterstützt den Modus über tsocks <Kommando>, also hier z.B. tsocks /opt/bin/jameica, was ein Shell Skript ist.
Ein anderer Modus ist export LD_PRELOAD=/lib/libtsocks.so, das eigentlich an das geforkte Jameica Environment weitergegeben wird, führt aber zum selben Fehler. Arbeitet Java evtl hier über andere syscalls?
Zitat
tsocks uses ELF dynamic loader features to intercept dynamic function calls from programs in which it is embedded. As a result,
it cannot trace the actions of statically linked executables, non-ELF executables, or executables that make system calls directly
with the system call trap or through the syscall() routine.

Fragen wären also, kann jameica den Proxy-Type socks5 bekommen? Kann jameica die Proxy-Schicht transparent für Plugins bieten, dass nicht jedes Plugin sich ebenfalls darum kümmern muss?