X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fsecurity%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsecurity%2FControllerCustomRealm.java;h=a988673c7ef91b2f9d2297c4808b44b98986b63b;hb=7e82c13539bf01ba2c00989ced01a96cb7a0214e;hp=43a41da82451fea753879b57b3516131aadddfac;hpb=86a8fcb92de5475f366cda9e79e1b494834267b1;p=controller.git diff --git a/opendaylight/security/src/main/java/org/opendaylight/controller/security/ControllerCustomRealm.java b/opendaylight/security/src/main/java/org/opendaylight/controller/security/ControllerCustomRealm.java index 43a41da824..a988673c7e 100644 --- a/opendaylight/security/src/main/java/org/opendaylight/controller/security/ControllerCustomRealm.java +++ b/opendaylight/security/src/main/java/org/opendaylight/controller/security/ControllerCustomRealm.java @@ -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 roles = userManager.getUserRoles(username); - return new GenericPrincipal(username, getPassword(username), roles); - } else + List controllerRoles = new ArrayList(); + 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"); + } } }