5 Replies Latest reply on Mar 14, 2003 5:52 AM by Rafal Kedziorski

    No method permissions assigned to method=create

    Kayvan Mojarrad Newbie

      Hi people,
      I've seen a few postings for this problem with many suggested solutions. I heve tried these all including explicitly granting permissions to create and ejbCreate methods for all the ejbs and still get the same exception.
      I'm using Jboss304/Tomcta4.x running on seperate jvms.
      I use the ClientLoginModule to establish the caller identity with jboss on each request from tomcat. This works fine as I see the Principal being dispalyed correctly.
      In jboss, when I use one of the simple login modules (UserRolesLoginModule) I get this:
      08:26:11,147 ERROR [SecurityInterceptor] No method permissions assigned to met
      d=create, interface=HOME
      08:26:11,157 ERROR [LogInterceptor] EJBException, causedBy:
      java.lang.SecurityException: No method permissions assigned to method=create,
      terface=HOME
      at org.jboss.ejb.plugins.SecurityInterceptor.checkSecurityAssociation(
      curityInterceptor.java:190)
      at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterc
      tor.java:94)
      at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java
      29)
      at org.jboss.ejb.StatelessSessionContainer.invokeHome(StatelessSession
      ntainer.java:300)
      at org.jboss.ejb.Container.invoke(Container.java:730)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517
      at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.jav
      382)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImp
      java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc
      sorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
      at sun.rmi.transport.Transport$1.run(Transport.java:148)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java
      60)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTranspo
      .java:701)
      at java.lang.Thread.run(Thread.java:536)




      But when I use the DatabaseServerLoginModule I get this:
      08:48:46,435 ERROR [SecurityInterceptor] Authentication exception, principal=kv
      08:48:46,435 ERROR [LogInterceptor] EJBException, causedBy:
      java.lang.SecurityException: Authentication exception, principal=kv
      at org.jboss.ejb.plugins.SecurityInterceptor.checkSecurityAssociation(Se
      curityInterceptor.java:173)
      at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityIntercep
      tor.java:94)
      at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:1
      29)
      at org.jboss.ejb.StatelessSessionContainer.invokeHome(StatelessSessionCo
      ntainer.java:300)
      at org.jboss.ejb.Container.invoke(Container.java:730)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
      at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:
      382)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
      java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
      sorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
      at sun.rmi.transport.Transport$1.run(Transport.java:148)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
      60)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
      .java:701)
      at java.lang.Thread.run(Thread.java:536)


      Here's my assembly descriptor:

      <assembly-decriptor>

      <method-permission>



      <ejb-name>FWAutonumberEJB</ejb-name>
      <method-name>*</method-name>



      <ejb-name>FWAutonumberEJB</ejb-name>
      <method-name>create</method-name>



      <ejb-name>FWAutonumberEJB</ejb-name>
      <method-name>ejbCreate</method-name>



      <ejb-name>FWEJBDataAccessEJB</ejb-name>
      <method-name>*</method-name>



      <ejb-name>FWEJBDataAccessEJB</ejb-name>
      <method-name>create</method-name>



      <ejb-name>FWEJBDataAccessEJB</ejb-name>
      <method-name>ejbCreate</method-name>


      .....
      .....
      .....

      </method-permission>

      </assembly-decriptor>

      So what's the story with this?
      What am I doing wrong here????

      kv.