keycloak-aplcache

Fix adding all roles for an application to token, should be all

11/18/2013 12:16:37 PM

Details

diff --git a/services/src/main/java/org/keycloak/services/managers/TokenManager.java b/services/src/main/java/org/keycloak/services/managers/TokenManager.java
index 689139e..61ebb23 100755
--- a/services/src/main/java/org/keycloak/services/managers/TokenManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/TokenManager.java
@@ -67,7 +67,9 @@ public class TokenManager {
         }
         for (ApplicationModel resource : realm.getApplications()) {
             if (applicationResource && resource.getApplicationUser().getLoginName().equals(client.getLoginName())) {
-                resourceRolesRequested.addAll(resource.getName(), resource.getRoles());
+                for (String role : resource.getRoleMappingValues(user)) {
+                    resourceRolesRequested.addAll(resource.getName(), resource.getRole(role));
+                }
             } else {
                 Set<String> mapping = resource.getRoleMappingValues(user);
                 if (mapping != null && mapping.size() > 0 && (scopeMap == null || scopeMap.containsKey(resource.getName()))) {
diff --git a/testsuite/integration/src/test/resources/testrealm.json b/testsuite/integration/src/test/resources/testrealm.json
index 112b8ce..819e313 100755
--- a/testsuite/integration/src/test/resources/testrealm.json
+++ b/testsuite/integration/src/test/resources/testrealm.json
@@ -83,6 +83,10 @@
                 {
                     "name": "customer-user",
                     "description": "Have Customer User privileges"
+                },
+                {
+                    "name": "customer-admin",
+                    "description": "Have Customer Admin privileges"
                 }
             ],
             "roleMappings": [