diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
index 47cbd0f..248512d 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
@@ -117,24 +117,26 @@ public class SyncopeLoginModule extends AbstractKarafLoginModule {
     protected List<String> extractingRoles(String response) throws Exception {
         List<String> roles = new ArrayList<String>();
         if (response != null && !response.isEmpty()) {
-            // extract the <memberships> element
+            // extract the <memberships> element if it exists
             int index = response.indexOf("<memberships>");
-            response = response.substring(index + "<memberships>".length());
-            index = response.indexOf("</memberships>");
-            response = response.substring(0, index);
-
-            // looking for the roleName elements
-            index = response.indexOf("<roleName>");
-            while (index != -1) {
-                response = response.substring(index + "<roleName>".length());
-                int end = response.indexOf("</roleName>");
-                if (end == -1) {
-                    index = -1;
-                }
-                String role = response.substring(0, end);
-                roles.add(role);
-                response = response.substring(end + "</roleName>".length());
+            if (index != -1) {
+                response = response.substring(index + "<memberships>".length());
+                index = response.indexOf("</memberships>");
+                response = response.substring(0, index);
+    
+                // looking for the roleName elements
                 index = response.indexOf("<roleName>");
+                while (index != -1) {
+                    response = response.substring(index + "<roleName>".length());
+                    int end = response.indexOf("</roleName>");
+                    if (end == -1) {
+                        index = -1;
+                    }
+                    String role = response.substring(0, end);
+                    roles.add(role);
+                    response = response.substring(end + "</roleName>".length());
+                    index = response.indexOf("<roleName>");
+                }
             }
 
         }
