You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ad...@apache.org on 2004/09/11 20:45:52 UTC
svn commit: rev 45907 - in geronimo/trunk/modules/security/src: java/org/apache/geronimo/security/realm/providers test/org/apache/geronimo/security/jaas
Author: adc
Date: Sat Sep 11 11:45:51 2004
New Revision: 45907
Modified:
geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/realm/providers/SimpleSecurityRealm.java
geronimo/trunk/modules/security/src/test/org/apache/geronimo/security/jaas/LoginSimpleRealmTest.java
Log:
Added the ability to pass in a set of options to the LoginModule.
Modified: geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/realm/providers/SimpleSecurityRealm.java
==============================================================================
--- geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/realm/providers/SimpleSecurityRealm.java (original)
+++ geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/realm/providers/SimpleSecurityRealm.java Sat Sep 11 11:45:51 2004
@@ -17,7 +17,7 @@
package org.apache.geronimo.security.realm.providers;
import javax.security.auth.login.AppConfigurationEntry;
-import java.util.HashMap;
+import java.util.Properties;
import java.util.Set;
import org.apache.commons.logging.Log;
@@ -38,6 +38,7 @@
private boolean running = false;
private String loginModuleName;
+ private Properties options;
public SimpleSecurityRealm(String realmName) {
@@ -52,6 +53,14 @@
this.loginModuleName = loginModuleName;
}
+ public Properties getOptions() {
+ return options;
+ }
+
+ public void setOptions(Properties options) {
+ this.options = options;
+ }
+
public void doStart() {
refresh();
running = true;
@@ -104,7 +113,6 @@
}
public javax.security.auth.login.AppConfigurationEntry getAppConfigurationEntry() {
- HashMap options = new HashMap();
AppConfigurationEntry entry = new AppConfigurationEntry(loginModuleName,
AppConfigurationEntry.LoginModuleControlFlag.SUFFICIENT,
@@ -123,6 +131,7 @@
GBeanInfoFactory infoFactory = new GBeanInfoFactory(SimpleSecurityRealm.class, AbstractSecurityRealm.GBEAN_INFO);
infoFactory.addAttribute("loginModuleName", String.class, true);
+ infoFactory.addAttribute("options", Properties.class, true);
infoFactory.addOperation("isLoginModuleLocal");
Modified: geronimo/trunk/modules/security/src/test/org/apache/geronimo/security/jaas/LoginSimpleRealmTest.java
==============================================================================
--- geronimo/trunk/modules/security/src/test/org/apache/geronimo/security/jaas/LoginSimpleRealmTest.java (original)
+++ geronimo/trunk/modules/security/src/test/org/apache/geronimo/security/jaas/LoginSimpleRealmTest.java Sat Sep 11 11:45:51 2004
@@ -28,9 +28,9 @@
import javax.security.auth.login.LoginException;
import javax.security.auth.spi.LoginModule;
import java.io.IOException;
+import java.security.Principal;
import java.util.Map;
import java.util.Properties;
-import java.security.Principal;
import org.apache.geronimo.gbean.jmx.GBeanMBean;
import org.apache.geronimo.security.AbstractTest;
@@ -65,10 +65,14 @@
loginConfiguration = new ObjectName("geronimo.security:type=LoginConfiguration");
kernel.loadGBean(loginConfiguration, gbean);
+ Properties options = new Properties();
+ options.put("group", "it");
+
gbean = new GBeanMBean("org.apache.geronimo.security.realm.providers.SimpleSecurityRealm");
simpleRealm = new ObjectName("geronimo.security:type=SecurityRealm,realm=simple-realm");
gbean.setAttribute("realmName", "simple-realm");
gbean.setAttribute("loginModuleName", TestLoginModule.class.getName());
+ gbean.setAttribute("options", options);
gbean.setAttribute("maxLoginModuleAge", new Long(24 * 60 * 60 * 1000));
kernel.loadGBean(simpleRealm, gbean);
@@ -162,9 +166,12 @@
public void initialize(Subject subject, CallbackHandler handler, Map sharedState, Map options) {
this.subject = subject;
this.handler = handler;
+
+ if (!options.get("group").equals("it")) throw new IllegalArgumentException("Missing group option");
}
public class TestPrincipal implements Principal {
+
private final String name;
public TestPrincipal(String name) {
@@ -177,6 +184,7 @@
}
public class TestGroupPrincipal implements Principal {
+
private final String name;
public TestGroupPrincipal(String name) {