Ersetze System.setProperty (...)

8

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?

    
Peter Penzov 26.12.2015, 18:27
quelle

3 Antworten

2

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)

    
Martin Rauscher 07.01.2016, 21:30
quelle
6

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 .

    
jtahlborn 26.12.2015 20:09
quelle
0

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.

    
NiMa Thr 09.01.2016 05:50
quelle

Tags und Links