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 2016/03/26 09:42:55 UTC

karaf-decanter git commit: KARAF-4453 - Convert eventadmin subject as a Map

Repository: karaf-decanter
Updated Branches:
  refs/heads/master 9afed6c90 -> 58c0ffa77


KARAF-4453 - Convert eventadmin subject as a Map


Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/58c0ffa7
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/58c0ffa7
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/58c0ffa7

Branch: refs/heads/master
Commit: 58c0ffa77908b215641525839ae2af247f50922e
Parents: 9afed6c
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Sat Mar 26 09:42:20 2016 +0100
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Sat Mar 26 09:42:20 2016 +0100

----------------------------------------------------------------------
 .../collector/eventadmin/EventCollector.java    | 23 +++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/58c0ffa7/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
----------------------------------------------------------------------
diff --git a/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java b/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
index 62a4d83..fec06ce 100644
--- a/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
+++ b/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
@@ -20,12 +20,12 @@ import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
-import org.osgi.service.event.EventConstants;
 import org.osgi.service.event.EventHandler;
 
+import javax.security.auth.Subject;
 import java.net.InetAddress;
-import java.util.HashMap;
-import java.util.Map;
+import java.security.Principal;
+import java.util.*;
 
 @Component(
         name = "org.apache.karaf.decanter.collector.eventadmin",
@@ -57,6 +57,10 @@ public class EventCollector implements EventHandler {
                 } else {
                     data.put("eventType", "eventadmin");
                 }
+            } else if (property.equalsIgnoreCase("subject")) {
+                if (event.getProperty(property) != null && (event.getProperty(property) instanceof Subject)) {
+                    data.put(property, convertSubject((Subject) event.getProperty(property)));
+                }
             } else {
                 data.put(property, event.getProperty(property));
             }
@@ -65,6 +69,19 @@ public class EventCollector implements EventHandler {
         eventAdmin.sendEvent(bridge);
     }
 
+    public Map<String, String> convertSubject(Subject subject) {
+        Map<String, String> map = new HashMap<String, String>();
+        Set<Principal> principals = subject.getPrincipals();
+        for (Principal principal : principals) {
+            if (map.get(principal.getClass().getSimpleName()) != null) {
+                map.put(principal.getClass().getSimpleName(), map.get(principal.getClass().getSimpleName()) + "," + principal.getName());
+            } else {
+                map.put(principal.getClass().getSimpleName(), principal.getName());
+            }
+        }
+        return map;
+    }
+
     @Reference
     public void setEventAdmin(EventAdmin eventAdmin) {
         this.eventAdmin = eventAdmin;