djencks 2004/01/15 18:10:46
Modified: modules/core/src/java/org/apache/geronimo/security
AbstractModuleConfiguration.java
EJBModuleConfiguration.java SecurityService.java
WebModuleConfiguration.java
modules/core/src/test/org/apache/geronimo/security
SecurityServiceTest.java
Log:
Fix problem with lack of no arg constructor and simplify SecurityService
Revision Changes Path
1.4 +3 -1
incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/AbstractModuleConfiguration.java
Index: AbstractModuleConfiguration.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/AbstractModuleConfiguration.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractModuleConfiguration.java 2 Jan 2004 04:31:44 -0000 1.3
+++ AbstractModuleConfiguration.java 16 Jan 2004 02:10:46 -0000 1.4
@@ -75,6 +75,8 @@
*/
public abstract class AbstractModuleConfiguration implements
ModuleConfiguration, GeronimoMBeanTarget {
+ public static final String BASE_OBJECT_NAME =
"geronimo.security:type=ModuleConfiguration";
+
private String contextId;
private GeronimoMBeanContext context;
private PolicyConfigurationFactory factory;
1.7 +1 -3
incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/EJBModuleConfiguration.java
Index: EJBModuleConfiguration.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/EJBModuleConfiguration.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- EJBModuleConfiguration.java 3 Jan 2004 01:09:31 -0000 1.6
+++ EJBModuleConfiguration.java 16 Jan 2004 02:10:46 -0000 1.7
@@ -80,8 +80,6 @@
*/
public class EJBModuleConfiguration extends AbstractModuleConfiguration {
- public static final String BASE_OBJECT_NAME =
"geronimo.security:type=EJBModuleConfiguration";
-
public EJBModuleConfiguration(String contextId, EjbJar ejbJar) throws
GeronimoSecurityException {
super(contextId);
configure(ejbJar);
1.7 +19 -81
incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/SecurityService.java
Index: SecurityService.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/SecurityService.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SecurityService.java 4 Jan 2004 22:59:34 -0000 1.6
+++ SecurityService.java 16 Jan 2004 02:10:46 -0000 1.7
@@ -66,11 +66,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.kernel.service.GeronimoAttributeInfo;
import org.apache.geronimo.kernel.service.GeronimoMBeanEndpoint;
import org.apache.geronimo.kernel.service.GeronimoMBeanInfo;
import org.apache.geronimo.kernel.service.GeronimoOperationInfo;
import org.apache.geronimo.kernel.service.GeronimoParameterInfo;
-import org.apache.geronimo.kernel.service.GeronimoAttributeInfo;
import org.apache.geronimo.security.util.ConfigurationUtil;
@@ -86,8 +86,7 @@
private String policyConfigurationFactory;
private Collection realms = Collections.EMPTY_SET;
- private Collection ejbModuleConfigurations = Collections.EMPTY_SET;
- private Collection webModuleConfigurations = Collections.EMPTY_SET;
+ private Collection moduleConfigurations = Collections.EMPTY_SET;
/**
@@ -99,19 +98,12 @@
GeronimoMBeanInfo mbeanInfo = new GeronimoMBeanInfo();
mbeanInfo.setTargetClass(SecurityService.class.getName());
- mbeanInfo.addOperationInfo(new
GeronimoOperationInfo("getEjbModuleConfiguration",
+ mbeanInfo.addOperationInfo(new
GeronimoOperationInfo("getModuleConfiguration",
new GeronimoParameterInfo[] {
new GeronimoParameterInfo("contextID", String.class, ""),
new GeronimoParameterInfo("remove", Boolean.TYPE, "")},
GeronimoOperationInfo.ACTION_INFO,
- "Get security configuration for ejb module identified by
contextID"));
-
- mbeanInfo.addOperationInfo(new
GeronimoOperationInfo("getWebModuleConfiguration",
- new GeronimoParameterInfo[] {
- new GeronimoParameterInfo("contextID", String.class, ""),
- new GeronimoParameterInfo("remove", Boolean.TYPE, "")},
- GeronimoOperationInfo.ACTION_INFO,
- "Get security configuration for web module identified by
contextID"));
+ "Get security configuration for module identified by
contextID"));
mbeanInfo.addAttributeInfo(new
GeronimoAttributeInfo("PolicyConfigurationFactory",
true, true,
@@ -119,8 +111,7 @@
(Object)"org.apache.geronimo.security.GeronimoPolicyConfigurationFactory"));
mbeanInfo.addEndpoint(new GeronimoMBeanEndpoint("Realms",
SecurityRealm.class, ObjectName.getInstance(SecurityRealm.BASE_OBJECT_NAME +
",*")));
- mbeanInfo.addEndpoint(new
GeronimoMBeanEndpoint("EJBModuleConfigurations", EJBModuleConfiguration.class,
ObjectName.getInstance(EJBModuleConfiguration.BASE_OBJECT_NAME + ",*")));
- mbeanInfo.addEndpoint(new
GeronimoMBeanEndpoint("WebModuleConfigurations", WebModuleConfiguration.class,
ObjectName.getInstance(WebModuleConfiguration.BASE_OBJECT_NAME + ",*")));
+ mbeanInfo.addEndpoint(new
GeronimoMBeanEndpoint("ModuleConfigurations", ModuleConfiguration.class,
ObjectName.getInstance(AbstractModuleConfiguration.BASE_OBJECT_NAME + ",*")));
return mbeanInfo;
}
@@ -178,20 +169,12 @@
this.realms = realms;
}
- public Collection getEJBModuleConfigurations() {
- return ejbModuleConfigurations;
- }
-
- public void setEJBModuleConfigurations(Collection
ejbModuleConfigurations) {
- this.ejbModuleConfigurations = ejbModuleConfigurations;
+ public Collection getModuleConfigurations() {
+ return moduleConfigurations;
}
- public Collection getWebModuleConfigurations() {
- return webModuleConfigurations;
- }
-
- public void setWebModuleConfigurations(Collection
webModuleConfigurations) {
- this.webModuleConfigurations = webModuleConfigurations;
+ public void setModuleConfigurations(Collection moduleConfigurations) {
+ this.moduleConfigurations = moduleConfigurations;
}
/**
@@ -222,67 +205,22 @@
* @return an MBean that implements the
<code>WebModuleConfigurationMBean</code> Interface matched to the
* identified policy context.
* @throws GeronimoSecurityException if the implementation throws a
checked exception that has not been accounted for by
- * the <code>getWebModuleConfiguration</code> method
signature.
+ * the <code>getModuleConfiguration</code> method
signature.
*/
- public WebModuleConfiguration getWebModuleConfiguration(String
contextID, boolean remove) throws GeronimoSecurityException {
+ public ModuleConfiguration getModuleConfiguration(String contextID,
boolean remove) throws GeronimoSecurityException {
assert contextID != null : "ContextID must be supplied!";
SecurityManager sm = System.getSecurityManager();
- if (sm != null) sm.checkPermission(CONFIGURE);
-
- for (Iterator iterator = webModuleConfigurations.iterator();
iterator.hasNext();) {
- WebModuleConfiguration webModuleConfiguration =
(WebModuleConfiguration) iterator.next();
- if (contextID.equals(webModuleConfiguration.getContextID())) {
- if (remove) {
- webModuleConfiguration.delete();
- }
- return webModuleConfiguration;
- }
+ if (sm != null) {
+ sm.checkPermission(CONFIGURE);
}
- return null;
- }
-
- /**
- * <p>This method is used to obtain a EJB module configuration that
corresponds to the identified policy context.
- * The methods of the <code>EjbModuleConfigurationMBean</code> class are
used to map deployment descriptor
- * information into policy statements needed by the identified policy
context as well as the principal to roll
- * mapping.</p>
- *
- * <p>If at the time of the call, the identified EJB module
configuration does not exist, then the EJB module
- * configuration will be created and the JMX MBean that implements the
context's
- * <code>EjbModuleConfigurationMBean</code> interface will be returned.
If the state of the identified context is
- * "deleted" or "inService" it will be transitioned to the "open" state
as a result of the call. The states in the
- * lifecycle of a policy context are defined by the
<code>EjbModuleConfigurationMBean</code> interface.</p>
- *
- * <p>For a given value of policy context identifier, this method must
always return the same instance of
- * <code>EjbModuleConfigurationMBean</code> and there must be at most
one actual instance of a
- * <code>EjbModuleConfigurationMBean</code> with a given policy context
identifier (during a process context).</p>
- *
- * <p>To preserve the invariant that there be at most one
<code>EjbModuleConfigurationMBean</code> object for a
- * given policy context, it may be necessary for this method to be
thread safe.</p>
- *
- * @param contextID A String identifying the EJB module configuration to
be returned. The value passed to this
- * parameter must not be null.
- * @param remove A boolean value that establishes whether or not the
security configuration of an existing EJB
- * module is to be removed before its
<code>EjbModuleConfigurationMBean</code> object is returned.
- * If the value passed to this parameter is
<code>true</code> the security configuration of an
- * existing EJB module will be removed. If the value is
<code>false</code>, it will not be removed.
- * @return an MBean that implements the
<code>EjbModuleConfigurationMBean</code> Interface matched to the
- * identified policy context.
- * @throws GeronimoSecurityException if the implementation throws a
checked exception that has not been accounted for by
- * the <code>getEjbModuleConfiguration</code> method
signature.
- */
- public EJBModuleConfiguration getEjbModuleConfiguration(String
contextID, boolean remove) throws GeronimoSecurityException {
- assert contextID != null : "ContextID must be supplied!";
- SecurityManager sm = System.getSecurityManager();
- if (sm != null) sm.checkPermission(CONFIGURE);
- for (Iterator iterator = ejbModuleConfigurations.iterator();
iterator.hasNext();) {
- EJBModuleConfiguration ejbModuleConfiguration =
(EJBModuleConfiguration) iterator.next();
- if (contextID.equals(ejbModuleConfiguration.getContextID())) {
+ for (Iterator iterator = moduleConfigurations.iterator();
iterator.hasNext();) {
+ ModuleConfiguration moduleConfiguration = (ModuleConfiguration)
iterator.next();
+ if (contextID.equals(moduleConfiguration.getContextID())) {
if (remove) {
- ejbModuleConfiguration.delete();
+ moduleConfiguration.delete();
}
- return ejbModuleConfiguration;
+ return moduleConfiguration;
}
}
return null;
1.7 +1 -3
incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/WebModuleConfiguration.java
Index: WebModuleConfiguration.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/WebModuleConfiguration.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WebModuleConfiguration.java 3 Jan 2004 01:09:31 -0000 1.6
+++ WebModuleConfiguration.java 16 Jan 2004 02:10:46 -0000 1.7
@@ -88,8 +88,6 @@
*/
public class WebModuleConfiguration extends AbstractModuleConfiguration {
- public static final String BASE_OBJECT_NAME =
"geronimo.security:type=WebModuleConfiguration";
-
public WebModuleConfiguration(String contextId, WebApp webApp) throws
GeronimoSecurityException {
super(contextId);
configure(webApp);
1.3 +5 -5
incubator-geronimo/modules/core/src/test/org/apache/geronimo/security/SecurityServiceTest.java
Index: SecurityServiceTest.java
===================================================================
RCS file:
/home/cvs/incubator-geronimo/modules/core/src/test/org/apache/geronimo/security/SecurityServiceTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SecurityServiceTest.java 28 Dec 2003 19:34:05 -0000 1.2
+++ SecurityServiceTest.java 16 Jan 2004 02:10:46 -0000 1.3
@@ -57,6 +57,7 @@
import java.io.File;
import java.util.Collections;
+import java.util.Arrays;
import junit.framework.TestCase;
import org.apache.geronimo.security.providers.PropertiesFileSecurityRealm;
@@ -93,19 +94,18 @@
assemblyDescriptor.setExcludeList(new ExcludeList());
ejbJar.setAssemblyDescriptor(assemblyDescriptor);
ejbJar.setSecurity(new Security());
- securityService.setEJBModuleConfigurations(Collections.singleton(new
EJBModuleConfiguration("Foo", ejbJar)));
WebApp webApp = new WebApp();
webApp.setSecurity(new Security());
- securityService.setWebModuleConfigurations(Collections.singleton(new
WebModuleConfiguration("Bar", webApp)));
+ securityService.setModuleConfigurations(Arrays.asList(new Object[]
{new EJBModuleConfiguration("Foo", ejbJar),new WebModuleConfiguration("Bar",
webApp)}));
}
public void tearDown() throws Exception {
}
public void testConfig() throws Exception {
- EJBModuleConfiguration ejbModuleConfiguration =
securityService.getEjbModuleConfiguration("Foo", false);
+ ModuleConfiguration ejbModuleConfiguration =
securityService.getModuleConfiguration("Foo", false);
assertTrue("expected an ejbModuleConfiguration",
ejbModuleConfiguration != null);
- WebModuleConfiguration webModuleConfiguration =
securityService.getWebModuleConfiguration("Bar", false);
+ ModuleConfiguration webModuleConfiguration =
securityService.getModuleConfiguration("Bar", false);
assertTrue("expected a webModuleConfiguration",
webModuleConfiguration != null);
}
}