djencks 2005/03/28 17:55:55
Modified: modules/openejb-builder/src/java/org/openejb/deployment
AbstractContainerBuilder.java
ContainerSecurityBuilder.java
MDBContainerBuilder.java SecureBuilder.java
Log:
Add NamedUsernamePasswordCredential and supporting infrastructure to allow
configuring security info for ws client calls
Revision Changes Path
1.10 +9 -8
openejb/modules/openejb-builder/src/java/org/openejb/deployment/AbstractContainerBuilder.java
Index: AbstractContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/AbstractContainerBuilder.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- AbstractContainerBuilder.java 15 Mar 2005 05:32:41 -0000 1.9
+++ AbstractContainerBuilder.java 28 Mar 2005 22:55:55 -0000 1.10
@@ -61,6 +61,7 @@
import org.apache.geronimo.transaction.TrackedConnectionAssociator;
import org.apache.geronimo.transaction.context.TransactionContextManager;
import org.apache.geronimo.transaction.context.UserTransactionImpl;
+import org.apache.geronimo.security.deploy.DefaultPrincipal;
import org.openejb.EJBContainer;
import org.openejb.GenericEJBContainer;
import org.openejb.InstanceContextFactory;
@@ -95,7 +96,7 @@
private String localInterfaceName;
private String serviceEndpointName;
private String primaryKeyClassName;
- private Subject defaultSubject;
+ private DefaultPrincipal defaultPrincipal;
private Subject runAs;
private boolean doAsCurrentCaller = false;
private boolean securityEnabled = false;
@@ -199,12 +200,12 @@
this.primaryKeyClassName = primaryKeyClassName;
}
- public Subject getDefaultSubject() {
- return defaultSubject;
+ public DefaultPrincipal getDefaultPrincipal() {
+ return defaultPrincipal;
}
- public void setDefaultSubject(Subject defaultSubject) {
- this.defaultSubject = defaultSubject;
+ public void setDefaultPrincipal(DefaultPrincipal defaultPrincipal) {
+ this.defaultPrincipal = defaultPrincipal;
}
public Subject getRunAs() {
@@ -471,7 +472,7 @@
null, //objectname
null, //kernel
getSecurityConfiguration(),
- getDefaultSubject(),
+ getDefaultPrincipal(),
runAs,
getHomeTxPolicyConfig(),
getRemoteTxPolicyConfig(),
@@ -499,7 +500,7 @@
gbean.setAttribute("LocalJndiNames", getLocalJndiNames());
gbean.setReferencePattern("Timer", timerName);
gbean.setAttribute("SecurityConfiguration",
getSecurityConfiguration());
- gbean.setAttribute("DefaultSubject", getDefaultSubject());
+ gbean.setAttribute("DefaultPrincipal", getDefaultPrincipal());
gbean.setAttribute("RunAsSubject", getRunAs());
gbean.setAttribute("HomeTxPolicyConfig", getHomeTxPolicyConfig());
gbean.setAttribute("RemoteTxPolicyConfig",
getRemoteTxPolicyConfig());
1.13 +2 -31
openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerSecurityBuilder.java
Index: ContainerSecurityBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerSecurityBuilder.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ContainerSecurityBuilder.java 14 Mar 2005 02:12:47 -0000 1.12
+++ ContainerSecurityBuilder.java 28 Mar 2005 22:55:55 -0000 1.13
@@ -62,15 +62,12 @@
import javax.security.jacc.EJBRoleRefPermission;
import org.apache.geronimo.common.DeploymentException;
-import org.apache.geronimo.common.GeronimoSecurityException;
-import org.apache.geronimo.security.PrimaryRealmPrincipal;
import org.apache.geronimo.security.RealmPrincipal;
-import org.apache.geronimo.security.deploy.DefaultPrincipal;
+import org.apache.geronimo.security.deploy.DistinguishedName;
import org.apache.geronimo.security.deploy.Principal;
import org.apache.geronimo.security.deploy.Realm;
import org.apache.geronimo.security.deploy.Role;
import org.apache.geronimo.security.deploy.Security;
-import org.apache.geronimo.security.deploy.DistinguishedName;
import org.apache.geronimo.security.util.ConfigurationUtil;
import org.apache.geronimo.xbeans.j2ee.AssemblyDescriptorType;
import org.apache.geronimo.xbeans.j2ee.ExcludeListType;
@@ -80,7 +77,6 @@
import org.apache.geronimo.xbeans.j2ee.RoleNameType;
import org.apache.geronimo.xbeans.j2ee.SecurityIdentityType;
import org.apache.geronimo.xbeans.j2ee.SecurityRoleRefType;
-
import org.openejb.security.SecurityConfiguration;
@@ -136,7 +132,7 @@
/**
* Add the default subject
*/
- builder.setDefaultSubject(generateDefaultSubject(security));
+ builder.setDefaultPrincipal(security.getDefaultPrincipal());
/**
* JACC v1.0 section 3.1.5.1
@@ -258,31 +254,6 @@
Permission p = (Permission) e.nextElement();
permissions.add(p);
}
- }
-
- /**
- * Generate the default principal from the security config.
- *
- * @param security The Geronimo security configuration.
- * @return the default principal
- */
- protected Subject generateDefaultSubject(Security security) throws
GeronimoSecurityException {
- DefaultPrincipal defaultPrincipal = security.getDefaultPrincipal();
- Subject defaultSubject = new Subject();
-
- RealmPrincipal realmPrincipal =
ConfigurationUtil.generateRealmPrincipal(defaultPrincipal.getPrincipal(),
defaultPrincipal.getRealmName());
- if (realmPrincipal == null) {
- throw new GeronimoSecurityException("Unable to create realm
principal");
- }
- PrimaryRealmPrincipal primaryRealmPrincipal =
ConfigurationUtil.generatePrimaryRealmPrincipal(defaultPrincipal.getPrincipal(),
defaultPrincipal.getRealmName());
- if (primaryRealmPrincipal == null) {
- throw new GeronimoSecurityException("Unable to create primary
realm principal");
- }
-
- defaultSubject.getPrincipals().add(realmPrincipal);
- defaultSubject.getPrincipals().add(primaryRealmPrincipal);
-
- return defaultSubject;
}
/**
1.7 +4 -6
openejb/modules/openejb-builder/src/java/org/openejb/deployment/MDBContainerBuilder.java
Index: MDBContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/MDBContainerBuilder.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MDBContainerBuilder.java 15 Mar 2005 05:32:41 -0000 1.6
+++ MDBContainerBuilder.java 28 Mar 2005 22:55:55 -0000 1.7
@@ -48,7 +48,6 @@
package org.openejb.deployment;
import java.lang.reflect.Method;
-import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
@@ -59,6 +58,7 @@
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentBuilder;
+import org.apache.geronimo.security.deploy.DefaultPrincipal;
import org.apache.geronimo.transaction.context.UserTransactionImpl;
import org.openejb.cache.InstancePool;
import org.openejb.dispatch.EJBTimeoutOperation;
@@ -74,8 +74,6 @@
import org.openejb.security.SecurityConfiguration;
import org.openejb.slsb.EJBCreateMethod;
import org.openejb.slsb.RemoveMethod;
-import org.openejb.transaction.ContainerPolicy;
-import org.openejb.transaction.TransactionPolicy;
import org.openejb.transaction.TransactionPolicySource;
import org.openejb.transaction.TransactionPolicyType;
import org.openejb.util.SoftLimitedInstancePool;
@@ -147,11 +145,11 @@
this.endpointInterfaceName = endpointInterfaceName;
}
- public Subject getDefaultSubject() {
+ public DefaultPrincipal getDefaultPrincipal() {
return null; // RETURN NOTHING
}
- public void setDefaultSubject(Subject defaultSubject) {
+ public void setDefaultPrincipal(DefaultPrincipal defaultPrincipal) {
// DO NOTHING
}
1.2 +4 -3
openejb/modules/openejb-builder/src/java/org/openejb/deployment/SecureBuilder.java
Index: SecureBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/SecureBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SecureBuilder.java 10 Nov 2004 01:35:08 -0000 1.1
+++ SecureBuilder.java 28 Mar 2005 22:55:55 -0000 1.2
@@ -51,6 +51,7 @@
import javax.security.auth.Subject;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentBuilder;
+import org.apache.geronimo.security.deploy.DefaultPrincipal;
import org.openejb.security.SecurityConfiguration;
@@ -65,9 +66,9 @@
void setContainerId(String containerId);
- Subject getDefaultSubject();
+ DefaultPrincipal getDefaultPrincipal();
- void setDefaultSubject(Subject defaultSubject);
+ void setDefaultPrincipal(DefaultPrincipal defaultSubject);
Subject getRunAs();