Search the FirstSpirit Knowledge Base
Hallo,
ich habe eine eclipse-RCP Anwendung welche per OSGI ein Bundle einbindet, welches die neue fs-access-5.0BETA-37.jar nutzt.
Beim Aufbau der Verbindung zum FirstSpirit-Server erhalte ich die folgende Exception:
"Authorisation error - java.lang.SecurityException: Not trusted"
Der Grund scheint zu sein (beim Debuggen festgestellt), dass ServerCaller.class.getSigners() null liefert.
Unter anderem erscheint beim Start der Anwendung folgende Exception:
java.security.NoSuchAlgorithmException: No algorithm found for 2.16.840.1.101.3.4.2.1
at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.findDigest(PKCS7Processor.java:87)
at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.processSignerInfos(PKCS7Processor.java:311)
at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.<init>(PKCS7Processor.java:133)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.processSigner(SignatureBlockProcessor.java:93)
at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.process(SignatureBlockProcessor.java:59)
at org.eclipse.osgi.internal.signedcontent.SignedBundleFile.setBundleFile(SignedBundleFile.java:47)
at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.wrapBundleFile(SignedBundleHook.java:209)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.createBundleFile(BaseStorage.java:756)
at org.eclipse.osgi.baseadaptor.BaseAdaptor.createBundleFile(BaseAdaptor.java:486)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.createBundleFile(ClasspathManager.java:261)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.getClasspath(ClasspathManager.java:234)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.addClassPathEntry(ClasspathManager.java:199)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassPathEntry(ClasspathManager.java:177)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.buildClasspath(ClasspathManager.java:155)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.initialize(ClasspathManager.java:88)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.initialize(DefaultClassLoader.java:204)
at org.eclipse.osgi.internal.loader.BundleLoader.createBCL(BundleLoader.java:929)
at org.eclipse.osgi.internal.loader.BundleLoader.createBCLPrevileged(BundleLoader.java:905)
at org.eclipse.osgi.internal.loader.BundleLoader.createClassLoader(BundleLoader.java:384)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:164)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Die Jar Datei scheint mit Hilfe von SHA256 signiert zu sein. Eclipse versteht diesen Algorithmus aber nicht!?
Und was jetzt?
Teste ich die FirstSpirit-Verbindung per jUnit-Test, so ist ServerCaller.class.getSigners() ordnunggemäß
gefüllt/gesetzt und die Verbindung funktioniert.
Bis zur Version fs-access-4.2.453.jar funktioniert Alles wunderbar.
Wieso ist ServerCaller.class.getSigners() null, wenn ich es über die eclipse-RCP Anwendung starte, und wieso
nur bei dem neuen API?
Ich hoffe jemand kann mir helfen.
Schönen Gruß
Michael
Hallo Michael,
das Problem scheint bereits gefixt zu sein:
Wir stellen die Signierung wieder auf SHA-1 um.
Mit den 5.0 Release-Candidate ist die Umstellung durchgeführt worden:
Hallo Herr Nahberger,
konnten Sie dieses Problem lösen? Falls ja, funktioniert Ihre Lösung auch mit FirstSpirit 5.2?
Danke und Gruß,
Martin