You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ri...@apache.org on 2007/01/17 19:51:32 UTC
svn commit: r497125 - in /incubator/openejb/trunk/openejb2/modules:
openejb-corba/src/main/java/org/apache/openejb/corba/
openejb-yoko/src/main/java/org/apache/openejb/yoko/
Author: rickmcguire
Date: Wed Jan 17 10:51:30 2007
New Revision: 497125
URL: http://svn.apache.org/viewvc?view=rev&rev=497125
Log:
OPENEJB-445 Generated IORs do not have a zero IIOP profile port value when SSL transports are used.
Modified:
incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/Adapter.java
incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterEntity.java
incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateful.java
incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateless.java
incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/CORBABean.java
incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSBean.java
incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSLink.java
incubator/openejb/trunk/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/ORBConfigAdapter.java
Modified: incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/Adapter.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/Adapter.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/Adapter.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/Adapter.java Wed Jan 17 10:51:30 2007
@@ -65,6 +65,8 @@
parentPOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID),
parentPOA.create_implicit_activation_policy(ImplicitActivationPolicyValue.NO_IMPLICIT_ACTIVATION),
};
+ // make sure we create this with the appropriate ORB-specific policies.
+ policies = tssLink.addPolicyOverrides(policies);
homePOA = parentPOA.create_POA(tssLink.getContainerId(), parentPOA.the_POAManager(), policies);
homePOA.the_POAManager().activate();
Modified: incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterEntity.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterEntity.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterEntity.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterEntity.java Wed Jan 17 10:51:30 2007
@@ -68,6 +68,10 @@
homePOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID),
homePOA.create_implicit_activation_policy(ImplicitActivationPolicyValue.NO_IMPLICIT_ACTIVATION),
};
+
+ // make sure we create this with the appropriate ORB-specific policies.
+ policies = tssLink.addPolicyOverrides(policies);
+
poa = homePOA.create_POA(tssLink.getContainerId(), homePOA.the_POAManager(), policies);
poa.set_servant_manager(new ObjectActivator());
Modified: incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateful.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateful.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateful.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateful.java Wed Jan 17 10:51:30 2007
@@ -68,6 +68,8 @@
homePOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID),
homePOA.create_implicit_activation_policy(ImplicitActivationPolicyValue.NO_IMPLICIT_ACTIVATION),
};
+ // make sure we create this with the appropriate ORB-specific policies.
+ policies = tssLink.addPolicyOverrides(policies);
poa = homePOA.create_POA(tssLink.getContainerId(), homePOA.the_POAManager(), policies);
poa.set_servant_manager(new ObjectActivator());
Modified: incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateless.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateless.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateless.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/AdapterStateless.java Wed Jan 17 10:51:30 2007
@@ -53,6 +53,8 @@
homePOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID),
homePOA.create_implicit_activation_policy(ImplicitActivationPolicyValue.NO_IMPLICIT_ACTIVATION),
};
+ // make sure we create this with the appropriate ORB-specific policies.
+ policies = tssLink.addPolicyOverrides(policies);
poa = homePOA.create_POA(tssLink.getContainerId(), homePOA.the_POAManager(), policies);
poa.the_POAManager().activate();
Modified: incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/CORBABean.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/CORBABean.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/CORBABean.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/CORBABean.java Wed Jan 17 10:51:30 2007
@@ -33,6 +33,7 @@
import org.apache.openejb.corba.security.config.tss.TSSTransportMechConfig;
import org.apache.openejb.corba.util.Util;
import org.omg.CORBA.ORB;
+import org.omg.CORBA.Policy;
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAHelper;
@@ -62,6 +63,9 @@
private POA rootPOA;
private NameService nameService;
private AbstractName abstractName;
+ // ORB-specific policy overrides we need to add to POA policies created by
+ // child TSSBeans.
+ private Policy[] policyOverrides = null;
public CORBABean() {
this.classLoader = null;
@@ -70,6 +74,7 @@
this.listenerPort = -1;
this.host = null;
this.abstractName = null;
+ this.policyOverrides = null;
}
/**
@@ -99,6 +104,7 @@
this.nameService = nameService;
this.host = host;
this.listenerPort = listenerPort;
+ this.policyOverrides = null;
}
/**
@@ -299,5 +305,40 @@
*/
public String getHost() {
return host;
+ }
+
+ /**
+ * Set a set of policy overrides to be used with
+ * this ORB instance. These are normally set by
+ * the ORBConfigAdapter instance when the ORB
+ * is created.
+ *
+ * @param overrides The new override list.
+ */
+ public void setPolicyOverrides(Policy[] overrides) {
+ policyOverrides = overrides;
+ }
+
+ /**
+ * Add the policy overrides (if any) to the list
+ * of policies used to create a POA instance.
+ *
+ * @param policies The base set of policies.
+ *
+ * @return A new Policy array with the overrides added. Returns
+ * the same array if no overrides are required.
+ */
+ public Policy[] addPolicyOverrides(Policy[] policies) {
+ // just return the same list of no overrides exist
+ if (policyOverrides == null) {
+ return policies;
+ }
+
+ Policy[] newPolicies = new Policy[policies.length + policyOverrides.length];
+
+ System.arraycopy(policies, 0, newPolicies, 0, policies.length);
+ System.arraycopy(policyOverrides, 0, newPolicies, policies.length, policyOverrides.length);
+
+ return newPolicies;
}
}
Modified: incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSBean.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSBean.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSBean.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSBean.java Wed Jan 17 10:51:30 2007
@@ -121,6 +121,9 @@
rootPOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID),
rootPOA.create_implicit_activation_policy(ImplicitActivationPolicyValue.NO_IMPLICIT_ACTIVATION),
};
+ // there may be ORB-specific policy overrides required.
+ policies = server.addPolicyOverrides(policies);
+
localPOA = rootPOA.create_POA(POAName, rootPOA.the_POAManager(), policies);
localPOA.the_POAManager().activate();
@@ -191,5 +194,17 @@
}
}
}
-
+
+ /**
+ * Add the policy overrides (if any) to the list
+ * of policies used to create a POA instance.
+ *
+ * @param policies The base set of policies.
+ *
+ * @return A new Policy array with the overrides added. Returns
+ * the same array if no overrides are required.
+ */
+ public Policy[] addPolicyOverrides(Policy[] policies) {
+ return server.addPolicyOverrides(policies);
+ }
}
Modified: incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSLink.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSLink.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSLink.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/TSSLink.java Wed Jan 17 10:51:30 2007
@@ -37,6 +37,8 @@
import org.apache.openejb.transaction.TransactionPolicyType;
import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.omg.CORBA.Policy;
+
/**
* @version $Rev$ $Date$
*/
@@ -144,5 +146,17 @@
ProxyInfo getProxyInfo() {
return ejb.getProxyInfo();
}
-
+
+ /**
+ * Add the policy overrides (if any) to the list
+ * of policies used to create a POA instance.
+ *
+ * @param policies The base set of policies.
+ *
+ * @return A new Policy array with the overrides added. Returns
+ * the same array if no overrides are required.
+ */
+ public Policy[] addPolicyOverrides(Policy[] policies) {
+ return tssBean.addPolicyOverrides(policies);
+ }
}
Modified: incubator/openejb/trunk/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/ORBConfigAdapter.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/ORBConfigAdapter.java?view=diff&rev=497125&r1=497124&r2=497125
==============================================================================
--- incubator/openejb/trunk/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/ORBConfigAdapter.java (original)
+++ incubator/openejb/trunk/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/ORBConfigAdapter.java Wed Jan 17 10:51:30 2007
@@ -16,30 +16,22 @@
*/
package org.apache.openejb.yoko;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.Iterator;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Properties;
-import java.net.InetSocketAddress;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.omg.CORBA.ORB;
-import org.omg.CSIIOP.EstablishTrustInClient;
-import org.omg.Security.Confidentiality;
-import org.omg.Security.EstablishTrustInTarget;
-import org.omg.Security.NoProtection;
-
import org.apache.geronimo.gbean.GBeanLifecycle;
-
import org.apache.geronimo.security.deploy.DefaultDomainPrincipal;
import org.apache.geronimo.security.deploy.DefaultPrincipal;
import org.apache.geronimo.security.deploy.DefaultRealmPrincipal;
-
import org.apache.openejb.corba.CORBABean;
import org.apache.openejb.corba.CSSBean;
import org.apache.openejb.corba.NameService;
@@ -49,13 +41,21 @@
import org.apache.openejb.corba.security.config.css.CSSCompoundSecMechConfig;
import org.apache.openejb.corba.security.config.css.CSSCompoundSecMechListConfig;
import org.apache.openejb.corba.security.config.css.CSSConfig;
-import org.apache.openejb.corba.security.config.tss.TSSConfig;
import org.apache.openejb.corba.security.config.ssl.SSLConfig;
+import org.apache.openejb.corba.security.config.tss.TSSConfig;
import org.apache.openejb.corba.security.config.tss.TSSSSLTransportConfig;
import org.apache.openejb.corba.security.config.tss.TSSTransportMechConfig;
-
import org.apache.yoko.orb.CosNaming.tnaming.TransientNameService;
import org.apache.yoko.orb.CosNaming.tnaming.TransientServiceException;
+import org.apache.yoko.orb.OB.ZERO_PORT_POLICY_ID;
+import org.omg.CORBA.Any;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.Policy;
+import org.omg.CORBA.PolicyError;
+import org.omg.CSIIOP.EstablishTrustInClient;
+import org.omg.Security.Confidentiality;
+import org.omg.Security.EstablishTrustInTarget;
+import org.omg.Security.NoProtection;
/**
@@ -124,7 +124,30 @@
* @exception ConfigException
*/
public ORB createServerORB(CORBABean server) throws ConfigException {
- return createORB(server.getURI(), (ORBConfiguration)server, translateToArgs(server), translateToProps(server));
+ ORB orb = createORB(server.getURI(), (ORBConfiguration)server, translateToArgs(server), translateToProps(server));
+
+ // check the tss config for a transport mech definition. If we have one, then
+ // the port information will be passed in that config, and the port in the IIOP profile
+ // needs to be zero.
+ TSSConfig config = server.getTssConfig();
+ TSSTransportMechConfig transportMech = config.getTransport_mech();
+ if (transportMech != null) {
+ if (transportMech instanceof TSSSSLTransportConfig) {
+ Any any = orb.create_any();
+ any.insert_boolean(true);
+
+ try {
+ Policy portPolicy = orb.create_policy(ZERO_PORT_POLICY_ID.value, any);
+ Policy[] overrides = new Policy [] { portPolicy };
+ server.setPolicyOverrides(overrides);
+ } catch (org.omg.CORBA.PolicyError e) {
+ // shouldn't happen, but we'll let things continue with no policy set.
+ }
+
+ }
+ }
+
+ return orb;
}
/**
@@ -294,6 +317,17 @@
}
else {
result.put("yoko.orb.oa.endpoint", "iiop --host " + server.getHost());
+ }
+
+ // check the tss config for a transport mech definition. If we have one, then
+ // the port information will be passed in that config, and the port in the IIOP profile
+ // needs to be zero.
+ TSSConfig config = server.getTssConfig();
+ TSSTransportMechConfig transportMech = config.getTransport_mech();
+ if (transportMech != null) {
+ if (transportMech instanceof TSSSSLTransportConfig) {
+ result.put("yoko.orb.policy.zero_port", "true");
+ }
}
if (log.isDebugEnabled()) {