switt
I'm new here

Probleme mit FS Connection

Jump to solution

Hallo,

ich habe zZ das Problem, dass wenn ich eine "Executable JAR" baue, dass ich beim Verbindungsaufbau gegen den FirstSpirit Server eine "Not Trusted" Exception bekomme

java.lang.SecurityException: Not trusted

    at de.espirit.firstspirit.server.io.handler.AuthResponse.handle(AuthResponse.java:68)

    at de.espirit.firstspirit.server.io.ClientRequestHandler.service(ClientRequestHandler.java:408)

    at de.espirit.firstspirit.server.io.ClientRequestHandler.read(ClientRequestHandler.java:296)

    at de.espirit.firstspirit.client.io.AbstractMessageCaller.authorize(AbstractMessageCaller.java:125)

    at de.espirit.firstspirit.client.io.AbstractMessageCaller.authorize(AbstractMessageCaller.java:103)

    at de.espirit.firstspirit.client.io.HttpServerCaller.doConnect(HttpServerCaller.java:47)

    at de.espirit.firstspirit.client.io.ServerCaller.connect(ServerCaller.java:156)

    at de.espirit.firstspirit.client.io.ConnectionImpl.connect(ConnectionImpl.java:184)

    at de.switt.ProjectComparer.FsUtil.createConnection(FsUtil.java:45)

    at de.switt.ProjectComparer.Controller.createConnections(Controller.java:43)

    at de.switt.ProjectComparer.Controller.startComparison(Controller.java:71)

Aus der IDE heraus funktioniert es tadellos. Das Problem habe ich mit verschieden 5.2 Versionen getestet. Ich habe auch das Sever Zertifikat in den lokalen Keystore gelegt, ohne erfolg. Für die Connection habe ich die Server.jar, Client.jar und Access.jar ausprobiert, alle mit dem gleichen Ergebnis. Auch ein Test gegen einen lokalen FirstSpirit Server (ohne Zertifikat) brachte keine Besserung.

Die Verbindung wird über folgenden Schnipsel aufgebaut:

Connection con = null;

try {

    con = ConnectionManager.getConnection(host, port, ConnectionManager.HTTP_MODE, login, password);
    con.connect();
} catch (Exception e) {

    Logging.logError("Connection attempt failed.", e, getClass());
}

Danke schonaml im voraus Smiley Happy

0 Kudos
1 Solution

Accepted Solutions
isenberg
I'm new here

Hallo Sebastian,

dieselbe Fehlermeldung ist mir aus folgender Situation bekannt, wenn man versucht zur externen Nutzung der FS-API aus anderen Programmen heraus das fs-access.jar im -Xbootclasspath unterzubringen, um bequem den Parameter -jar statt -cp mit Klassenname nutzen zu können:

 

$ java -Xbootclasspath/a:fs-access.jar -jar myapp.jar

connection failed. Authorisation 

error - java.lang.SecurityException: Not trusted

 

Der Grund ist hier das Entfernen der Codesign-Signatur durch den Bootclassloader. Die FirstSpirit-Klassen prüfen aber die Codesign-Signatur und verweigern dann den Betrieb mit der obigen Exception. Jede Modifikation des fs-access.jar verursacht ebenfalls diese Exception.

Das fs-access.jar darf also nur im normalen System-Classpath verwendet werden, somit:

$ java -cp fs-access.jar:myapp.jar com.myapp.Main

View solution in original post

0 Kudos
2 Replies
isenberg
I'm new here

Hallo Sebastian,

dieselbe Fehlermeldung ist mir aus folgender Situation bekannt, wenn man versucht zur externen Nutzung der FS-API aus anderen Programmen heraus das fs-access.jar im -Xbootclasspath unterzubringen, um bequem den Parameter -jar statt -cp mit Klassenname nutzen zu können:

 

$ java -Xbootclasspath/a:fs-access.jar -jar myapp.jar

connection failed. Authorisation 

error - java.lang.SecurityException: Not trusted

 

Der Grund ist hier das Entfernen der Codesign-Signatur durch den Bootclassloader. Die FirstSpirit-Klassen prüfen aber die Codesign-Signatur und verweigern dann den Betrieb mit der obigen Exception. Jede Modifikation des fs-access.jar verursacht ebenfalls diese Exception.

Das fs-access.jar darf also nur im normalen System-Classpath verwendet werden, somit:

$ java -cp fs-access.jar:myapp.jar com.myapp.Main

0 Kudos

Danke Holger!

Geht einwandfrei.

0 Kudos