Problem:
- Product Name: VisiBroker for Java
- Product Version: All
- Tested Version: 7.0
- Product Component: VisiSecure (SSL) & Gatekeeper
- Platform/OS version: All
- Tested JDK: Java 6
The gatekeeper can be started before the applet is signed. But gatekeeper cannot be started after the applet is signed. The exception thrown by the gatekeeper is shown below:
org.omg.CORBA.INITIALIZE: java.lang.SecurityException: Signers of "com.inprise.vbroker.orb.ThreadLocal" do not match signers of other classes in package vmcid: 0x0 minor code: 0 completed: No
at com.inprise.vbroker.ds.Init.init(Init.java:68)
at com.inprise.vbroker.orb.ORB.initializeServices(ORB.java:1555)
at com.inprise.vbroker.orb.ORB.initialize(ORB.java:1311)
at com.inprise.vbroker.orb.ORB.set_parameters(ORB.java:1602)
at org.omg.CORBA.ORB.init(ORB.java:364)
at com.inprise.vbroker.gatekeeper.GateKeeper.start(GateKeeper.java:111)
at com.inprise.vbroker.gatekeeper.GateKeeper.start(GateKeeper.java:107)
at com.inprise.vbroker.gatekeeper.GateKeeper.main(GateKeeper.java:48)
Resolution:
This exception occurs because not all the archives specified in the applet html are signed.
The following is an example of the archives specified in the ClientApplet.html.
<applet archive="your_implementation.jar,lm.jar,vbjorb.jar,vbsec.jar" code="ClientApplet.class" width="200" height="80">
Typically, your_implementation.jar is signed, but not the rest of the archives, i.e. lm.jar, vbjorb.jar and vbsec.jar. These 3 jars can be located in the <VBROKERDIR>/lib directory. Please follow the steps below to sign these 3 VisiBroker jar files:
- jarsigner –keystore <keystore filename> -keypass <keypassword> -storepass <storepassword> <jar filename> <keystore alias>
- Repeat for all the VisiBroker jar files.
- Re-start the gatekeeper
References
Signed Applet (http://mindprod.com/jgloss/signedapplets.html)
#VisiBroker
#applet
#VisiSecure
#jarsigner
#Java
#gatekeeper
#Security




