You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/06/20 16:07:43 UTC
git commit: [KARAF-3061] Problems with jaas:realms / jaas:manage
commands when using multiple realms of the same name
Repository: karaf
Updated Branches:
refs/heads/karaf-2.x fc67178e7 -> c8912afb4
[KARAF-3061] Problems with jaas:realms / jaas:manage commands when using multiple realms of the same name
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/c8912afb
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/c8912afb
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/c8912afb
Branch: refs/heads/karaf-2.x
Commit: c8912afb4ddf73161a5f8363bbfba5f26fcd1110
Parents: fc67178
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Jun 20 15:55:15 2014 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Jun 20 15:55:15 2014 +0200
----------------------------------------------------------------------
.../karaf/jaas/command/JaasCommandSupport.java | 22 +++++++++++-
.../karaf/jaas/command/ListRealmsCommand.java | 6 +++-
.../karaf/jaas/command/ManageRealmCommand.java | 38 +++++++++++---------
3 files changed, 47 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/c8912afb/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
index 5706f21..1ec7713 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
@@ -21,8 +21,13 @@ import org.apache.karaf.jaas.modules.BackingEngineService;
import org.apache.karaf.shell.console.OsgiCommandSupport;
import javax.security.auth.login.AppConfigurationEntry;
+
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Queue;
+import java.util.TreeMap;
public abstract class JaasCommandSupport extends OsgiCommandSupport {
@@ -58,7 +63,22 @@ public abstract class JaasCommandSupport extends OsgiCommandSupport {
}
public List<JaasRealm> getRealms() {
- return realms;
+ return getRealms(false);
+ }
+
+ public List<JaasRealm> getRealms(boolean hidden) {
+ if (hidden) {
+ return realms;
+ } else {
+ Map<String, JaasRealm> map = new TreeMap<String, JaasRealm>();
+ for (JaasRealm realm : realms) {
+ if (!map.containsKey(realm.getName())
+ || realm.getRank() > map.get(realm.getName()).getRank()) {
+ map.put(realm.getName(), realm);
+ }
+ }
+ return new ArrayList<JaasRealm>(map.values());
+ }
}
public void setRealms(List<JaasRealm> realms) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/c8912afb/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
index 904f47b..0209025 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
@@ -19,6 +19,7 @@ import java.util.List;
import javax.security.auth.login.AppConfigurationEntry;
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;
@@ -28,13 +29,16 @@ public class ListRealmsCommand extends JaasCommandSupport {
private static final String REALM_LIST_FORMAT = "%5s %-20s %-80s";
+ @Option(name = "-h", aliases = {"--hidden"}, description = "Show hidden realms", required = false, multiValued = false)
+ boolean hidden;
+
@Override
protected Object doExecute(BackingEngine engine) throws Exception {
return null;
}
protected Object doExecute() throws Exception {
- List<JaasRealm> realms = getRealms();
+ List<JaasRealm> realms = getRealms(hidden);
if (realms != null && realms.size() > 0) {
System.out.println(String.format(REALM_LIST_FORMAT, "Index","Realm", "Module Class"));
int index = 1;
http://git-wip-us.apache.org/repos/asf/karaf/blob/c8912afb/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
index 1262290..61ddd34 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
@@ -41,6 +41,9 @@ public class ManageRealmCommand extends JaasCommandSupport {
@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;
+ @Option(name = "-h", aliases = {"--hidden"}, description = "Manage hidden realms", required = false, multiValued = false)
+ boolean hidden;
+
@Override
protected Object doExecute() throws Exception {
if (realmName == null && index <= 0) {
@@ -61,7 +64,7 @@ public class ManageRealmCommand extends JaasCommandSupport {
if (index > 0) {
// user provided the index, get the realm AND entry from the index
- List<JaasRealm> realms = getRealms();
+ List<JaasRealm> realms = getRealms(hidden);
if (realms != null && realms.size() > 0) {
int i = 1;
realms_loop: for (JaasRealm r : realms) {
@@ -85,22 +88,23 @@ public class ManageRealmCommand extends JaasCommandSupport {
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;
+ 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 (entry != null) {
+ break;
+ }
}
}
}