[jboss-cvs] JBossAS SVN: r69871 - in trunk/server/src/main/org/jboss: invocation and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Feb 17 12:47:48 EST 2008
Author: anil.saldhana at jboss.com
Date: 2008-02-17 12:47:45 -0500 (Sun, 17 Feb 2008)
New Revision: 69871
Modified:
trunk/server/src/main/org/jboss/ejb/Container.java
trunk/server/src/main/org/jboss/invocation/InvocationKey.java
trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java
trunk/server/src/main/org/jboss/proxy/ejb/ProxyFactory.java
Log:
JBAS-5237: ejb proxies should pass security domain name for use by client side security interceptor
Modified: trunk/server/src/main/org/jboss/ejb/Container.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/Container.java 2008-02-16 16:20:54 UTC (rev 69870)
+++ trunk/server/src/main/org/jboss/ejb/Container.java 2008-02-17 17:47:45 UTC (rev 69871)
@@ -119,6 +119,7 @@
* @author <a href="mailto:christoph.jung at infor.de">Christoph G. Jung</a>
* @author <a href="mailto:dimitris at jboss.org">Dimitris Andreadis</a>
* @author adrian at jboss.org
+ * @author anil.saldhana at jboss.org
* @version $Revision$
*
* @jmx.mbean extends="org.jboss.system.ServiceMBean"
Modified: trunk/server/src/main/org/jboss/invocation/InvocationKey.java
===================================================================
--- trunk/server/src/main/org/jboss/invocation/InvocationKey.java 2008-02-16 16:20:54 UTC (rev 69870)
+++ trunk/server/src/main/org/jboss/invocation/InvocationKey.java 2008-02-17 17:47:45 UTC (rev 69871)
@@ -42,7 +42,7 @@
* new key enum value you must assign it an ordinal value of the current
* MAX_KEY_ID+1 and update the MAX_KEY_ID value.
*/
- private static final int MAX_KEY_ID = 21;
+ private static final int MAX_KEY_ID = 22;
/** The array of InvocationKey indexed by ordinal value of the key */
private static final InvocationKey[] values = new InvocationKey[MAX_KEY_ID+1];
@@ -166,6 +166,11 @@
public final static InvocationKey INTERVM =
new InvocationKey("INTERVM", 20);
+ /**
+ * Indicate whether an inter-vm invocation
+ */
+ public final static InvocationKey SECURITY_DOMAIN =
+ new InvocationKey("SECURITY_DOMAIN", 21);
/** The key enum symbolic value */
private final transient String name;
Modified: trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java
===================================================================
--- trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java 2008-02-16 16:20:54 UTC (rev 69870)
+++ trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java 2008-02-17 17:47:45 UTC (rev 69871)
@@ -24,6 +24,7 @@
import java.security.Principal;
import org.jboss.invocation.Invocation;
+import org.jboss.invocation.InvocationKey;
import org.jboss.security.RunAs;
import org.jboss.security.SecurityContext;
@@ -106,7 +107,9 @@
Object cred = invocation.getCredential();
//Create a new SecurityContext
- //TODO: Need to get SecurityDomain name??
- return sa.createSecurityContext(p,cred, "CLIENT_PROXY");
+ String domain = (String) invocation.getInvocationContext().getValue(InvocationKey.SECURITY_DOMAIN);
+ if(domain == null)
+ domain = "CLIENT_PROXY";
+ return sa.createSecurityContext(p,cred, domain);
}
}
Modified: trunk/server/src/main/org/jboss/proxy/ejb/ProxyFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/proxy/ejb/ProxyFactory.java 2008-02-16 16:20:54 UTC (rev 69870)
+++ trunk/server/src/main/org/jboss/proxy/ejb/ProxyFactory.java 2008-02-17 17:47:45 UTC (rev 69871)
@@ -21,18 +21,18 @@
*/
package org.jboss.proxy.ejb;
-import java.lang.reflect.Proxy;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+import java.rmi.ServerException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
-import java.rmi.ServerException;
import javax.ejb.EJBHome;
+import javax.ejb.EJBMetaData;
import javax.ejb.EJBObject;
-import javax.ejb.EJBMetaData;
import javax.management.ObjectName;
import javax.naming.InitialContext;
import javax.naming.NamingException;
@@ -42,20 +42,20 @@
import org.jboss.ejb.EJBProxyFactory;
import org.jboss.ejb.EJBProxyFactoryContainer;
import org.jboss.invocation.Invocation;
-import org.jboss.invocation.Invoker;
import org.jboss.invocation.InvocationContext;
import org.jboss.invocation.InvocationKey;
+import org.jboss.invocation.Invoker;
import org.jboss.logging.Logger;
+import org.jboss.metadata.BeanMetaData;
+import org.jboss.metadata.EntityMetaData;
import org.jboss.metadata.InvokerProxyBindingMetaData;
import org.jboss.metadata.MetaData;
-import org.jboss.metadata.EntityMetaData;
import org.jboss.metadata.SessionMetaData;
-import org.jboss.metadata.BeanMetaData;
import org.jboss.naming.Util;
-import org.jboss.proxy.Interceptor;
import org.jboss.proxy.ClientContainer;
import org.jboss.proxy.ClientContainerEx;
import org.jboss.proxy.IClientContainer;
+import org.jboss.proxy.Interceptor;
import org.jboss.proxy.ejb.handle.HomeHandleImpl;
import org.jboss.system.Registry;
import org.jboss.util.NestedRuntimeException;
@@ -389,7 +389,13 @@
context.setInvoker(homeInvoker);
context.setValue(InvocationKey.EJB_METADATA, ejbMetaData);
context.setInvokerProxyBinding(invokerMetaData.getName());
-
+
+ if(container.getSecurityManager() != null)
+ {
+ String secDomain = container.getSecurityManager().getSecurityDomain();
+ context.setValue(InvocationKey.SECURITY_DOMAIN, secDomain);
+ }
+
ClientContainer client = null;
EJBProxyFactoryContainer pfc = (EJBProxyFactoryContainer) container;
Class[] ifaces = {pfc.getHomeClass(), Class.forName("javax.ejb.Handle")};
@@ -427,6 +433,12 @@
context.setInvoker(beanInvoker);
context.setInvokerProxyBinding(invokerMetaData.getName());
context.setValue(InvocationKey.EJB_HOME, home);
+
+ if(container.getSecurityManager() != null)
+ {
+ String secDomain = container.getSecurityManager().getSecurityDomain();
+ context.setValue(InvocationKey.SECURITY_DOMAIN, secDomain);
+ }
Class[] ssifaces = {pfc.getRemoteClass()};
if( includeIClientIface )
@@ -566,6 +578,12 @@
context.setValue(InvocationKey.EJB_HOME, home);
context.setValue("InvokerID", Invoker.ID);
+ if(container.getSecurityManager() != null)
+ {
+ String secDomain = container.getSecurityManager().getSecurityDomain();
+ context.setValue(InvocationKey.SECURITY_DOMAIN, secDomain);
+ }
+
ClientContainer client;
if( includeIClientIface )
{
@@ -618,6 +636,12 @@
context.setInvokerProxyBinding(invokerMetaData.getName());
context.setValue(InvocationKey.EJB_HOME, home);
+ if(container.getSecurityManager() != null)
+ {
+ String secDomain = container.getSecurityManager().getSecurityDomain();
+ context.setValue(InvocationKey.SECURITY_DOMAIN, secDomain);
+ }
+
ClientContainer client;
if( includeIClientIface )
{
More information about the jboss-cvs-commits
mailing list