Ich habe diesen einfachen JMX-Client
%Vor% Wie kann ich System.setProperty(....)
durch Java Code ersetzen? Ich möchte System.setProperty
nicht verwenden.
Bearbeiten. Ich fand dieses Beispiel
Können wir diesen Code verwenden?
%Vor%Können Sie uns eine Idee geben, wie wir diesen Code integrieren können oder ob es eine andere Lösung geben sollte?
Ich fürchte, Ihre Frage ist nicht sehr gut formuliert. Ich schreibe, dass Sie System.setProperty
ersetzen möchten, aber für mich sieht es so aus, tatsächlich Sie möchten benutzerdefinierte Trust / Keystores verwenden.
Dies wurde bereits beantwortet: Einen benutzerdefinierten Truststore in Java sowie den Standard-Truststore verwenden
Das Beispiel, das Sie gefunden haben, ist nur die Hälfte der Lösung. Sie müssen beim Erstellen der Verbindungen die entsprechenden Manager verwenden. Etwas wie das:
%Vor%Quelle: Ссылка
Aber wenn Sie die eigentliche Verbindungserstellung nicht kontrollieren, müssen Sie wahrscheinlich die globalen Eigenschaften verwenden. (Oder welcher Konfigurationsmechanismus Ihr Anwendungsserver hat)
Es scheint, dass es relativ einfach sein sollte, aber es ist nicht so.
Sie müssen tatsächliche Socket-Factory-Klassen in der Umgebung übergeben, siehe Beispiel . Die in diesem Beispiel verwendeten Implementierungen verwenden jedoch die Standard-Socketfactorys von jvm. Stattdessen müssen Sie Ihre eigenen SSL*SocketFactory
-Instanzen mit dem entsprechenden Schlüsselspeicher und Vertrauensspeicher einrichten. Dann müssen Sie Ihre eigenen RMI*SocketFactory
Instanzen mit Ihren konfigurierten Socket-Factory (s) implementieren. Sie können die jdk-Impls als Hilfslinien verwenden, SslRMIClientSocketFactory und SslRMIServerSocketFactory .
Eine einfache und einfache Problemumgehung, um dies zu erreichen, ist die Verwendung einer separaten Kopie der Systemeigenschaften für jeden Thread , wie in hier (interessanterweise betrifft die Hauptfrage das selbe Problem wie bei Ihnen). Danach wird das Festlegen von keyStore und trustStore auf Systemeigenschaften thread-lokal erfolgen.
Stellen Sie sicher, dass Sie verschiedene Threads für Ihre zwei verschiedenen SSL-Verbindungen verwenden.
Tags und Links java