Merge "Custom Node Type jaxb string to id"
[controller.git] / opendaylight / security / src / main / java / org / opendaylight / controller / security / ControllerCustomRealm.java
index 43a41da82451fea753879b57b3516131aadddfac..a988673c7ef91b2f9d2297c4808b44b98986b63b 100644 (file)
@@ -1,11 +1,13 @@
 package org.opendaylight.controller.security;
 
 import java.security.Principal;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.catalina.realm.GenericPrincipal;
 import org.apache.catalina.realm.RealmBase;
 import org.opendaylight.controller.sal.authorization.AuthResultEnum;
+import org.opendaylight.controller.sal.authorization.UserLevel;
 import org.opendaylight.controller.sal.utils.ServiceHelper;
 import org.opendaylight.controller.usermanager.IUserManager;
 import org.slf4j.Logger;
@@ -29,8 +31,9 @@ public class ControllerCustomRealm  extends RealmBase {
                 .getGlobalInstance(IUserManager.class, this);
         if (userManager != null) {
             return userManager.getPassword(username);
-        } else
+        } else {
             throw new RuntimeException("User Manager reference is null");
+        }
     }
 
     @Override
@@ -38,11 +41,14 @@ public class ControllerCustomRealm  extends RealmBase {
         IUserManager userManager = (IUserManager) ServiceHelper
                 .getGlobalInstance(IUserManager.class, this);
         if (userManager != null) {
-            final List<String> roles = userManager.getUserRoles(username);
-            return new GenericPrincipal(username, getPassword(username), roles);
-        } else
+            List<String> controllerRoles = new ArrayList<String>();
+            for (UserLevel level : userManager.getUserLevels(username)) {
+                controllerRoles.add(level.toString());
+            }
+            return new GenericPrincipal(username, "", controllerRoles);
+        } else {
             throw new RuntimeException("User Manager reference is null");
-
+        }
     }
 
     @Override
@@ -61,8 +67,9 @@ public class ControllerCustomRealm  extends RealmBase {
                 logger.error("Authentication failed for user " + username);
                 return null;
             }
-        } else
+        } else {
             throw new RuntimeException("User Manager reference is null");
+        }
     }
 
 }