You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/09/23 21:53:36 UTC
svn commit: r1389132 - in
/karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command:
JaasCommandSupport.java ManageRealmCommand.java
Author: jbonofre
Date: Sun Sep 23 19:53:35 2012
New Revision: 1389132
URL: http://svn.apache.org/viewvc?rev=1389132&view=rev
Log:
[KARAF-1541] Enhance the jaas:manage to handle different selection ways
Modified:
karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
Modified: karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java?rev=1389132&r1=1389131&r2=1389132&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java (original)
+++ karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java Sun Sep 23 19:53:35 2012
@@ -15,7 +15,6 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.jaas.boot.ProxyLoginModule;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.modules.BackingEngine;
import org.apache.karaf.jaas.modules.BackingEngineService;
@@ -58,53 +57,6 @@ public abstract class JaasCommandSupport
return null;
}
-
- /**
- * Returns the Jaas Realm named as realmName.
- *
- * @param realmName
- * @return
- */
- public JaasRealm findRealmByNameOrIndex(String realmName, int index) {
- JaasRealm realm = null;
- if (realms != null) {
- for (int i=1; i <= realms.size();i++) {
- if (realms.get(i-1).getName().equals(realmName) || index == i)
- return realms.get(i-1);
- }
- }
- return realm;
- }
-
- /**
- * Returns the Jaas Module entry of the specified realm, named as moduleName.
- *
- * @param moduleName
- * @return
- */
- public AppConfigurationEntry findEntryByRealmAndName(JaasRealm realm, String moduleName) {
- AppConfigurationEntry appConfigurationEntry = null;
- if (realm != null) {
-
- AppConfigurationEntry[] entries = realm.getEntries();
-
- //If no moduleName provided and a there is a single module in the realm.
- if (entries != null && entries.length == 1 && moduleName == null) {
- return entries[0];
- }
-
- for (AppConfigurationEntry entry : entries) {
- String moduleClass = (String) entry.getOptions().get(ProxyLoginModule.PROPERTY_MODULE);
- if (moduleName.equals(entry.getLoginModuleName()) || moduleName.equals(moduleClass)) {
- return entry;
- }
- }
-
- }
- return appConfigurationEntry;
- }
-
-
public List<JaasRealm> getRealms() {
return realms;
}
@@ -120,4 +72,5 @@ public abstract class JaasCommandSupport
public void setBackingEngineService(BackingEngineService backingEngineService) {
this.backingEngineService = backingEngineService;
}
+
}
Modified: karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java?rev=1389132&r1=1389131&r2=1389132&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java (original)
+++ karaf/branches/karaf-2.3.x/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java Sun Sep 23 19:53:35 2012
@@ -17,11 +17,13 @@ package org.apache.karaf.jaas.command;
import org.apache.felix.gogo.commands.Command;
import org.apache.felix.gogo.commands.Option;
+import org.apache.karaf.jaas.boot.ProxyLoginModule;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.modules.BackingEngine;
import javax.security.auth.login.AppConfigurationEntry;
import java.util.LinkedList;
+import java.util.List;
import java.util.Queue;
@Command(scope = "jaas", name = "manage", description = "Manage users and roles of a JAAS Realm")
@@ -36,12 +38,12 @@ public class ManageRealmCommand extends
@Option(name = "--module", aliases = {}, description = "Login Module Class Name", required = false, multiValued = false)
String moduleName;
- @Option(name = "-f", aliases = { "--force" }, description = "Force the management of this realm, even if another one was under management", required = false, multiValued = false)
+ @Option(name = "-f", aliases = {"--force"}, description = "Force the management of this realm, even if another one was under management", required = false, multiValued = false)
boolean force;
@Override
protected Object doExecute() throws Exception {
- if (realmName == null && index <= 0 ) {
+ if (realmName == null && index <= 0) {
System.err.println("A valid realm or the realm index need to be specified");
return null;
}
@@ -54,28 +56,77 @@ public class ManageRealmCommand extends
System.err.println("Another JAAS Login Module is being edited. Cancel/update first, or use the --force option.");
} else {
- JaasRealm realm = findRealmByNameOrIndex(realmName, index);
+ JaasRealm realm = null;
+ AppConfigurationEntry entry = null;
- if (realm != null) {
- AppConfigurationEntry entry = findEntryByRealmAndName(realm, moduleName);
-
- if (entry != null) {
- Queue<JaasCommandSupport> commands = null;
-
- commands = (Queue<JaasCommandSupport>) this.session.get(JAAS_CMDS);
- if (commands == null) {
- commands = new LinkedList<JaasCommandSupport>();
+ if (index > 0) {
+ // user provided the index, get the realm AND entry from the index
+ List<JaasRealm> realms = getRealms();
+ if (realms != null && realms.size() > 0) {
+ int i = 1;
+ for (JaasRealm r : realms) {
+ AppConfigurationEntry[] entries = r.getEntries();
+
+ if (entries != null) {
+ for (int j = 0; j < entries.length; j++) {
+ if (i == index) {
+ realm = r;
+ entry = entries[j];
+ break;
+ }
+ i++;
+ }
+ }
}
-
- this.session.put(JAAS_REALM, realm);
- this.session.put(JAAS_ENTRY, entry);
- this.session.put(JAAS_CMDS, commands);
- } else {
- System.err.println(String.format("Could not find JAAS Login Module %s in JAAS Realm %s", moduleName, realmName));
}
} else {
- System.err.println(String.format("Could not find JAAS Realm %s", realmName));
+ List<JaasRealm> realms = getRealms();
+ if (realms != null && realms.size() > 0) {
+ for (JaasRealm r : realms) {
+ if (r.getName().equals(realmName)) {
+ realm = r;
+ break;
+ }
+ }
+
+ }
+ AppConfigurationEntry[] entries = realm.getEntries();
+ if (entries != null) {
+ for (AppConfigurationEntry e : entries) {
+ String moduleClass = (String) e.getOptions().get(ProxyLoginModule.PROPERTY_MODULE);
+ if (moduleName == null) {
+ entry = e;
+ break;
+ } else {
+ if (moduleName.equals(e.getLoginModuleName()) || moduleName.equals(moduleClass)) {
+ entry = e;
+ break;
+ }
+ }
+ }
+ }
}
+
+ if (realm == null) {
+ System.err.println("JAAS realm has not been found.");
+ return null;
+ }
+
+ if (entry == null) {
+ System.err.println("JAAS module has not been found.");
+ return null;
+ }
+
+ Queue<JaasCommandSupport> commands = null;
+
+ commands = (Queue<JaasCommandSupport>) this.session.get(JAAS_CMDS);
+ if (commands == null) {
+ commands = new LinkedList<JaasCommandSupport>();
+ }
+
+ this.session.put(JAAS_REALM, realm);
+ this.session.put(JAAS_ENTRY, entry);
+ this.session.put(JAAS_CMDS, commands);
}
return null;
}