Voici la trace de la pile de l'une des connexions dans mon processus:J'ai mis security.provider.1 = org.bouncycastle.jce.provider.BouncyCastleProvider mais il n'est pas utilisé pendant la poignée de main SSL
"ServerConnection on port 10000 Thread 27" #521 prio=5 os_prio=0 tid=0x0000000002db4800 nid=0x2d79 runnable [0x00007f0ababb1000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
at sun.security.ssl.InputRecord.read(InputRecord.java:503)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
- locked <0x00000006d63c51f0> (a java.lang.Object)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
- locked <0x00000006d6405210> (a sun.security.ssl.AppInputStream)
at org.apache.geode.internal.cache.tier.sockets.Message.fetchHeader(Message.java:691)
at org.apache.geode.internal.cache.tier.sockets.Message.readHeaderAndPayload(Message.java:709)
at org.apache.geode.internal.cache.tier.sockets.Message.read(Message.java:657)
at org.apache.geode.internal.cache.tier.sockets.Message.recv(Message.java:1105)
- locked <0x00000006d6405288> (a java.nio.HeapByteBuffer)
at org.apache.geode.internal.cache.tier.sockets.Message.recv(Message.java:1118)
at org.apache.geode.internal.cache.tier.sockets.BaseCommand.readRequest(BaseCommand.java:869)
at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:723)
at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:914)
at org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1171)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$1$1.run(AcceptorImpl.java:519)
at java.lang.Thread.run(Thread.java:745)
Ici, je devine plutôt que sun.security.ssl je devrais voir quelque chose utilisé de la bibliothèque gonflable de château.
L'ajout d'un fournisseur de sécurité bouncy castle garantit que le fournisseur est disponible pour la machine virtuelle Java pendant l'exécution, mais il n'y a aucune garantie que ce fournisseur sera utilisé. Il est basé sur les chiffrements utilisés dans votre code. Partagez le morceau de code qui établit la connexion SSL. –
C'est une bibliothèque tierce. Mais ne devrait-on pas chercher ces chiffres en considérant la priorité des fournisseurs? – mdavid
Il sera mais si le fournisseur différent est spécifié dans le code? S'il s'agit d'un tiers, vous pouvez regarder le code tiers (si disponible). –