I was trying to deploy an EAR which contains about a dozen
beans into BES 5.0 installed on Solaris. From the console
and log files, seems it was deployed successfully. My Java
client program was able to lookup the home interface and
create the remote reference, but failed to execute methods
on the remote reference with authorization errors. Deailed
info is provided below.
Could somebody help? Thanks in advance!
Boming
SERVER LOG:
===========
ejbcontainer: >>>> EJB LOG >>>>
ejbcontainer: java.lang.Error: No Authorization Provider. Most likely
the authorization domain is misconfigured
ejbcontainer: at com.inprise.ejb.Global.log(Global.java:288)
ejbcontainer: at com.inprise.ejb.Dispatcher.invokeSecurityCheck(Dispatcher.java:1041)
ejbcontainer: at com.inprise.ejb.Dispatcher.invoke(Dispatcher.java:850)
ejbcontainer: at com.inprise.ejb.Dispatcher.invoke(Dispatcher.java:665)
ejbcontainer: at com.inprise.ejb.Dispatcher.invoke(Dispatcher.java:417)
ejbcontainer: at acme.sbm.server.BLServerPOAInvokeHandler.start(BLServerPOAInvokeHandler.java:738)
ejbcontainer: at acme.sbm.server.BLServerPOAInvokeHandler.start(BLServerPOAInvokeHandler.java:1376)
ejbcontainer: at acme.sbm.server.BLServerPOA._invoke(BLServerPOA.java:422)
ejbcontainer: at acme.sbm.server.BLServerPOA._invoke(BLServerPOA.java:96)
ejbcontainer: at com.inprise.vbroker.poa.POAImpl.invoke(POAImpl.java:2597)
ejbcontainer: at com.inprise.vbroker.poa.ActivationRecord.invoke(ActivationRecord.java:105)
ejbcontainer: at com.inprise.vbroker.poa.ServerInterceptorManager$ARWrapper.invoke(ServerInterceptorManager.java:95)
ejbcontainer: at com.inprise.vbroker.GIOP.GiopProtocolAdapter.doRequest(GiopProtocolAdapter.java:621)
ejbcontainer: at com.inprise.vbroker.IIOP.ServerProtocolAdapter.doRequest(ServerProtocolAdapter.java:68)
ejbcontainer: at com.inprise.vbroker.GIOP.GiopProtocolAdapter.dispatchMessage(GiopProtocolAdapter.java:833)
ejbcontainer: at com.inprise.vbroker.orb.TPDispatcherImpl$TPDispatcher.run(TPDispatcherImpl.java:105)
ejbcontainer: at com.inprise.vbroker.orb.ThreadPool$PoolWorker.run(ThreadPool.java:76)
ejbcontainer: <<<< EJB LOG <<<<
SERVER CONFIG:
==============
(vbroker.properties)
vbroker.security.disable=true
org.omg.PortableInterceptor.ORBInitializerClass.com.borland.security.core.Init=1
vbroker.security.login=security/vault
vbroker.security.authentication.config=security/config.jaas
vbroker.security.authDomains=default
vbroker.security.domain.default.defaultAccessRule=grant
vbroker.security.domain.default.rolemap_path=security/default.rolemap
(config.jaas)
System {
com.borland.security.provider.authn.BasicLoginModule required
REALM=ServerRealm DRIVER=com.borland.datastore.jdbc.DataStoreDriver
URL="jdbc:borland:dslocal:../../adm/security/userdb.jds"
TYPE=BASIC LOGINUSERID=admin LOGINPASSWORD=admin
USERTABLE=UserTable USERNAMEFIELDINUSERTABLE=USERNAME
PASSWORDFIELD=PASSWORD GROUPNAMEFIELD=GROUPNAME
GROUPTABLE=UserGroupTable USERNAMEFIELDINGROUPTABLE=username;
};
ServerRealm {
com.borland.security.provider.authn.BasicLoginModule required
DRIVER=com.borland.datastore.jdbc.DataStoreDriver
URL="jdbc:borland:dslocal:../../adm/security/userdb.jds"
TYPE=BASIC LOGINUSERID=admin LOGINPASSWORD=admin
USERTABLE=UserTable USERNAMEFIELDINUSERTABLE=USERNAME
PASSWORDFIELD=PASSWORD GROUPNAMEFIELD=GROUPNAME
GROUPTABLE=UserGroupTable USERNAMEFIELDINGROUPTABLE=username;
};
HostRealm {
com.borland.security.provider.authn.HostLoginModule required;
};
EJB DD:
=======
<session>
<display-name>BLServerBean</display-name>
<ejb-name>BLServerBean</ejb-name>
<home>acme.sbm.server.BLServerHome</home>
<remote>acme.sbm.server.BLServer</remote>
<ejb-class>acme.sbm.server.BLServerBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<security-identity>
<description />
<use-caller-identity />
</security-identity>
</session>
CLIENT CODE:
============
1: BLServerHome blServerHome = getTarget(cmduser, cmdpasswd);
//succeeded
2: BLServer blServer = blServerHome.create(); //succeeded
3: blServer.start(cmduser, cmdpasswd); //failed
CLIENT ENV:
===========
vbj -VBJprop borland.enterprise.licenseDir=$APPSERVER_DIR/adm
-VBJprop vbroker.agent.port=$VBROKER_PORT
-VBJprop org.omg.CORBA.ORBClass=com.inprise.vbroker.orb.ORB
-VBJprop org.omg.CORBA.ORBSingletonClass=com.inprise.vbroker.orb.ORBSingleton
-VBJprop javax.rmi.CORBA.StubClass=com.inprise.vbroker.rmi.CORBA.StubImpl
-VBJprop javax.rmi.CORBA.UtilClass=com.inprise.vbroker.rmi.CORBA.UtilImpl
-VBJprop javax.rmi.CORBA.PortableRemoteObjectClass=com.inprise.vbroker.rmi.CORBA.PortableRemoteObjectImpl
-VBJclasspath $CP MyClient
CLIENT LOG:
===========
java.lang.NullPointerException
at com.inprise.vbroker.orb.DelegateImpl.handleReply(DelegateImpl.java:820)
at com.inprise.vbroker.orb.DelegateImpl.invoke(DelegateImpl.java:659)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:459)
at acme.sbm.server._BLServer_Stub.start(_BLServer_Stub.java:1654)
at acme.sbm.client.Main.start(Main.java:65)
at acme.sbm.client.Main.main(Main.java:152)