diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_0.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_0.java index bc8c2503c..7eb8534ae 100644 --- a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_0.java +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_0.java @@ -533,8 +533,8 @@ public class MITREidDataService_1_0 implements MITREidDataService { } else if (name.equals(REFRESHTOKENS)) { readRefreshTokens(reader); } else if (name.equals(SYSTEMSCOPES)) { - readSystemScopes(reader); - //reader.skipValue(); + //readSystemScopes(reader); + reader.skipValue(); } else { // unknown token, skip it reader.skipValue(); @@ -542,10 +542,11 @@ public class MITREidDataService_1_0 implements MITREidDataService { break; case END_OBJECT: // the object ended, we're done here - fixObjectReferences(); - return; + reader.endObject(); + continue; } } + fixObjectReferences(); } private Map refreshTokenToClientRefs = new HashMap(); @@ -669,8 +670,12 @@ public class MITREidDataService_1_0 implements MITREidDataService { Long newId = tokenRepository.saveAccessToken(token).getId(); accessTokenToClientRefs.put(currentId, clientId); accessTokenToAuthHolderRefs.put(currentId, authHolderId); - accessTokenToRefreshTokenRefs.put(currentId, refreshTokenId); - accessTokenToIdTokenRefs.put(currentId, idTokenId); + if(refreshTokenId != null) { + accessTokenToRefreshTokenRefs.put(currentId, refreshTokenId); + } + if(idTokenId != null) { + accessTokenToIdTokenRefs.put(currentId, idTokenId); + } accessTokenOldToNewIdMap.put(currentId, newId); logger.debug("Read access token {}", currentId); } catch (ParseException ex) {