cancel
Showing results for 
Search instead for 
Did you mean: 

Permissions for method invocation

Former Member
0 Kudos

Hi,

I have a session bean which calls methods in the entity bean.

The entity bean methods can only be called by certain roles.

I followed the documentation in security for entity beans in Development manual.

When I deploy and run the ear and then through a client

and access the session bean

which accesses the entity bean I am getting errors

#

#1.5#00E081006A49003A00000003000010880003D55D9FE275E3#1079

023021453#com.sap.engine.services.ejb#sap.com/dmEAR#com.sa

p.engine.services.ejb#TestUser#18#####SAPEngine_Applicatio

n_Thread[impl:3]_19##0#0#Path#1#/System/Audit#Java###Exception #1#com.sap.engine.services.ejb.exceptions.

BaseClassNotFoundException: EJBLoader cannot find class:

com/sun/jndi/url/java/javaURLContextFactory.class.

at com.sap.engine.services.ejb.deploy.EJBLoader.

loadLocalClass(EJBLoader.java:101)

at

com.sap.engine.frame.core.load.ReferencedLoader.loadClass

(ReferencedLoader.java:340)

at

com.sap.engine.frame.core.load.ReferencedLoader.loadClass

(ReferencedLoader.java:301)

at java.lang.ClassLoader.loadClassInternal

(ClassLoader.java:302)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:219)

at

com.sun.naming.internal.VersionHelper12.loadClass

(VersionHelper12.java:50)

at

com.sun.naming.internal.ResourceManager.getFactory

(ResourceManager.java:371)

at javax.naming.spi.NamingManager.getURLObject

(NamingManager.java:570)

at javax.naming.spi.NamingManager.getURLContext

(NamingManager.java:528)

at

com.sap.engine.system.naming.provider.DefaultInitialContex

t.getURLOrDefaultInitCtx(DefaultInitialContext.java:120)

at javax.naming.InitialContext.lookup

(InitialContext.java:347)

at javax.naming.InitialContext.lookup

(InitialContext.java:347)

at

com.hp.dm.server.ejb.DocumentManagerSB.getDocumentEBLHif

(DocumentManagerSB.java:148)

at

com.hp.dm.server.ejb.DocumentManagerSB.ejbCreate

(DocumentManagerSB.java:49)

at

com.hp.dm.common.interfaces.DocumentManagerHifImpl0.initSe

ssionBean(DocumentManagerHifImpl0.java:114)

at

com.sap.engine.services.ejb.session.stateless.StatelessCon

tainerFP.createContext(StatelessContainerFP.java:50)

at

com.sap.engine.services.ejb.session.stateless.StatelessCon

tainer.createObject(StatelessContainer.java:173)

at

com.sap.engine.services.ejb.util.pool.ContainerPoolImpl.do

ResizeOneStepUp(ContainerPoolImpl.java:345)

at

com.sap.engine.services.ejb.util.pool.ContainerPoolImpl.en

sureNotEmpty(ContainerPoolImpl.java:314)

at

com.sap.engine.services.ejb.util.pool.ContainerPoolImpl.po

p(ContainerPoolImpl.java:284)

at

com.sap.engine.services.ejb.session.stateless.StatelessCon

tainer.getContext(StatelessContainer.java:96)

at

com.sap.engine.services.ejb.session.stateless.StatelessSes

sion.getContext(StatelessSession.java:64)

at

com.hp.dm.common.interfaces.DocumentManagerRifObjectImpl0.

_submitDocument(DocumentManagerRifObjectImpl0.java:242)

at sun.reflect.NativeMethodAccessorImpl.invoke0

(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke

(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke

(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke

(Method.java:324)

at

com.hp.dm.common.interfaces.DocumentManagerRifObjectImpl0.

run(DocumentManagerRifObjectImpl0.java:106)

at java.security.AccessController.doPrivileged

(Native Method)

at javax.security.auth.Subject.doAs

(Subject.java:379)

at

com.hp.dm.common.interfaces.DocumentManagerRifObjectImpl0.

submitDocument(DocumentManagerRifObjectImpl0.java:184)

at

com.hp.dm.common.interfaces.DocumentManagerRifObjectImpl0p

4_Skel.dispatch

(DocumentManagerRifObjectImpl0p4_Skel.java:102)

at

com.sap.engine.services.rmi_p4.DispatchImpl._runInternal

(DispatchImpl.java:268)

at

com.sap.engine.services.rmi_p4.DispatchImpl._run

(DispatchImpl.java:165)

at

com.sap.engine.services.rmi_p4.server.P4SessionProcessor.r

equest(P4SessionProcessor.java:102)

at

com.sap.engine.core.service630.context.cluster.session.App

licationSessionMessageListener.proces

s(ApplicationSessionMessageListener.java:37)

at

com.sap.engine.core.cluster.impl6.session.UnorderedChannel

$MessageRunner.run(UnorderedChannel.java:71)

at

com.sap.engine.core.thread.impl3.ActionObject.run

(ActionObject.java:37)

at java.security.AccessController.doPrivileged

(Native Method)

at

com.sap.engine.core.thread.impl3.SingleThread.execute

(SingleThread.java:94)

at

com.sap.engine.core.thread.impl3.SingleThread.run

(SingleThread.java:140)

EJB_JAR.XML

so my ejb-jar.xml has

<entity>

<ejb-name>DocumentEB</ejb-name>

<home>com.hp.dm.common.interfaces.DocumentEBHif</home>

<remote>com.hp.dm.common.interfaces.DocumentEBRif</remote>

<local-home>

com.hp.dm.common.interfaces.DocumentEBLHif

</local-home>

<local>com.hp.dm.common.interfaces.DocumentEBLif</local>

<ejb-class>com.hp.dm.server.ejb.DocumentEB</ejb-class>

<persistence-type>Bean</persistence-type>

<prim-key-class>java.lang.String</prim-key-class>

<reentrant>False</reentrant>

<abstract-schema-name>

</abstract-schema-name>

<security-identity>

<description>SecurityIdentityUser</description>

<run-as>

<role-name>testuser</role-name>

</run-as>

</security-identity>

</entity>

and the assembly descriptor is

<assembly-descriptor>

<security-role>

<description>

</description>

<role-name>testuser</role-name>

</security-role>

<method-permission>

<description>method-permission</description>

<role-name>testuser</role-name>

<method>

<ejb-name>DocumentEB</ejb-name>

<method-name>*</method-name>

</method>

</method-permission>

</assembly-descriptor>

The ejb-j2ee-engine.xml has

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd">

<ejb-j2ee-engine>

<description>

</description>

<enterprise-beans>

<enterprise-bean>

<ejb-name>DocumentCMPEBBean</ejb-name>

<jndi-name>DocManager/DocumentEB</jndi-name>

<entity-props/>

</enterprise-bean>

<enterprise-bean>

<ejb-name>DocumentEB</ejb-name>

<jndi-name>DocManager/DocumentEJB</jndi-name>

<run-as-identity-map>

<user-name>TestUser</user-name>

</run-as-identity-map>

<entity-props/>

</enterprise-bean>

<enterprise-bean>

<ejb-name>DocumentManagerSB</ejb-name>

<jndi-name>DocManager/DocumentManagerSB</jndi-name>

<session-props/>

</enterprise-bean>

</enterprise-beans>

<security-permission>

<security-role-map>

<role-name>testuser</role-name>

<server-role-name>TestUser</server-role-name>

</security-role-map>

</security-permission>

</ejb-j2ee-engine>

any idea as to what may be wrong if I remove the method permission items everything works correctly. Please help.

Thanks a lot

Padmaja

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi I am also getting same exception.

Can you help me how to overcome this problem if you had solved it.

I am using SAP Netweaver WEB AS6.40

Thanks in advance