Hi,

We are using jboss 2.4.3 and tomcat 3.2.1 in separate JVMs, having several
Stateful SessionBeans and BMP EntityBeans ans applets to access the beans.
I've configured JAAS based security for roles Aministrator, Advanced and
Standard.
It's working fine so far.

But we have the case that role Standard is allowed to create/remove a
SessionBean and call method readObjectData, but is not allowed to call
method readDetailData. 
If readDetailData is called a SecurityException is thrown, that's ok.
But after that we get a TRANSACTION ROLLBACK EXCEPTION on the next call on
that SessionBean.

[SubscriberSB] Insufficient method permissions, principal=StandardUser,
method=readDetailData, requiredRoles=[Advanced, Administrator],
principalRoles=[Standard]
[SubscriberSB] TRANSACTION ROLLBACK EXCEPTION:checkSecurityAssociation;
nested exception is: 
        java.lang.SecurityException: Insufficient method permissions,
principal=StandardUser, method=readDetailData, requiredRoles=[Advanced,
Administrator], principalRoles=[Standard]; nested exception is: 
        java.rmi.RemoteException: checkSecurityAssociation; nested exception
is: 
        java.lang.SecurityException: Insufficient method permissions,
principal=StandardUser, method=readDetailData, requiredRoles=[Advanced,
Administrator], principalRoles=[Standard]
[SubscriberSB] java.rmi.RemoteException: checkSecurityAssociation; nested
exception is: 
[SubscriberSB]  java.lang.SecurityException: Insufficient method
permissions, principal=StandardUser, method=readDetailData,
requiredRoles=[Advanced, Administrator], principalRoles=[Standard]
[SubscriberSB] java.lang.SecurityException: Insufficient method permissions,
principal=StandardUser, method=readDetailData, requiredRoles=[Advanced,
Administrator], principalRoles=[Standard]
[SubscriberSB]  at
org.jboss.ejb.plugins.SecurityInterceptor.checkSecurityAssociation(SecurityI
nterceptor.java:216)
[SubscriberSB]  at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:11
7)
[SubscriberSB]  at
org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSess
ionInstanceInterceptor.java:243)
[SubscriberSB]  at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
[SubscriberSB]  at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:307)
[SubscriberSB]  at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[SubscriberSB]  at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[SubscriberSB]  at
org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:
341)
[SubscriberSB]  at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:395)
[SubscriberSB]  at java.lang.reflect.Method.invoke(Native Method)
[SubscriberSB]  at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[SubscriberSB]  at sun.rmi.transport.Transport$1.run(Unknown Source)
[SubscriberSB]  at java.security.AccessController.doPrivileged(Native
Method)
[SubscriberSB]  at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[SubscriberSB]  at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
Source)
[SubscriberSB]  at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[SubscriberSB]  at java.lang.Thread.run(Unknown Source)

[SubscriberSB] TRANSACTION ROLLBACK EXCEPTION:Could not activate; nested
exception is: 
        java.io.FileNotFoundException:
D:\ProgramFiles\Tenovis\ADN-Web\JBoss\db\sessions\SubscriberSB\1010399848332
.ser (The system cannot find the file specified); nested exception is: 
        java.rmi.NoSuchObjectException: Could not activate; nested exception
is: 
        java.io.FileNotFoundException:
D:\ProgramFiles\Tenovis\ADN-Web\JBoss\db\sessions\SubscriberSB\1010399848332
.ser (The system cannot find the file specified)
[SubscriberSB] java.rmi.NoSuchObjectException: Could not activate; nested
exception is: 
[SubscriberSB]  java.io.FileNotFoundException:
D:\ProgramFiles\Tenovis\ADN-Web\JBoss\db\sessions\SubscriberSB\1010399848332
.ser (The system cannot find the file specified)
[SubscriberSB]  at
org.jboss.ejb.plugins.AbstractInstanceCache.get(AbstractInstanceCache.java:2
11)
[SubscriberSB]  at
org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSess
ionInstanceInterceptor.java:194)
[SubscriberSB]  at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
[SubscriberSB]  at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:307)
[SubscriberSB]  at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[SubscriberSB]  at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[SubscriberSB]  at
org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:
341)
[SubscriberSB]  at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:395)
[SubscriberSB]  at java.lang.reflect.Method.invoke(Native Method)
[SubscriberSB]  at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[SubscriberSB]  at sun.rmi.transport.Transport$1.run(Unknown Source)
[SubscriberSB]  at java.security.AccessController.doPrivileged(Native
Method)
[SubscriberSB]  at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[SubscriberSB]  at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
Source)
[SubscriberSB]  at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
[SubscriberSB]  at java.lang.Thread.run(Unknown Source)

I assume that after the SecurityException has been thrown the container
discards the bean instance and no more methods may be called.
But the bean instance should still be available and the call of method
readObjectData for role Standard allowed.
Is this a configuration issue or how can we handle this case ?

Any ideas ?

Annegret


_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to