From 3d1aee77b415362388f2914431954fa7a6288ee2 Mon Sep 17 00:00:00 2001 From: Justin Richer Date: Fri, 22 May 2015 17:30:12 -0400 Subject: [PATCH] updated 1.2 import to reflect new objects --- .../service/impl/MITREidDataService_1_2.java | 129 +++++++----------- 1 file changed, 49 insertions(+), 80 deletions(-) diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_2.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_2.java index e0a14c1de..fb4e44679 100644 --- a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_2.java +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_2.java @@ -35,6 +35,7 @@ import org.mitre.oauth2.model.ClientDetailsEntity.AuthMethod; import org.mitre.oauth2.model.ClientDetailsEntity.SubjectType; import org.mitre.oauth2.model.OAuth2AccessTokenEntity; import org.mitre.oauth2.model.OAuth2RefreshTokenEntity; +import org.mitre.oauth2.model.SavedUserAuthentication; import org.mitre.oauth2.model.SystemScope; import org.mitre.oauth2.repository.AuthenticationHolderRepository; import org.mitre.oauth2.repository.OAuth2ClientRepository; @@ -681,43 +682,34 @@ public class MITREidDataService_1_2 extends MITREidDataServiceSupport implements if (reader.peek() == JsonToken.NULL) { reader.skipValue(); } else if (name.equals("id")) { - currentId = reader.nextLong(); - } else if (name.equals("ownerId")) { - //not needed - reader.skipValue(); - } else if (name.equals("authentication")) { - OAuth2Request authorizationRequest = null; - Authentication userAuthentication = null; - reader.beginObject(); - while (reader.hasNext()) { - switch (reader.peek()) { - case END_OBJECT: - continue; - case NAME: - String subName = reader.nextName(); - if (subName.equals("authorizationRequest")) { - authorizationRequest = readAuthorizationRequest(reader); - } else if (subName.equals("userAuthentication")) { - if (reader.peek() == JsonToken.NULL) { - reader.skipValue(); - } else { - String authString = reader.nextString(); - userAuthentication = base64UrlDecodeObject(authString, Authentication.class); - } - } else { - logger.debug("Found unexpected entry"); - reader.skipValue(); - } - break; - default: - logger.debug("Found unexpected entry"); - reader.skipValue(); - continue; - } + ahe.setId(reader.nextLong()); + currentId = ahe.getId(); + } else if (name.equals("requestParameters")) { + ahe.setRequestParameters(readMap(reader)); + } else if (name.equals("clientId")) { + ahe.setClientId(reader.nextString()); + } else if (name.equals("scope")) { + ahe.setScope(readSet(reader)); + } else if (name.equals("resourceIds")) { + ahe.setResourceIds(readSet(reader)); + } else if (name.equals("authorities")) { + Set authorityStrs = readSet(reader); + Set authorities = new HashSet(); + for (String s : authorityStrs) { + GrantedAuthority ga = new SimpleGrantedAuthority(s); + authorities.add(ga); } - reader.endObject(); - OAuth2Authentication auth = new OAuth2Authentication(authorizationRequest, userAuthentication); - ahe.setAuthentication(auth); + ahe.setAuthorities(authorities); + } else if (name.equals("approved")) { + ahe.setApproved(reader.nextBoolean()); + } else if (name.equals("redirectUri")) { + ahe.setRedirectUri(reader.nextString()); + } else if (name.equals("responseTypes")) { + ahe.setResponseTypes(readSet(reader)); + } else if (name.equals("extensions")) { + ahe.setExtensions(readMap(reader)); + } else if (name.equals("savedUserAuthentication")) { + ahe.setUserAuth(readSavedUserAuthentication(reader)); } else { logger.debug("Found unexpected entry"); reader.skipValue(); @@ -738,72 +730,47 @@ public class MITREidDataService_1_2 extends MITREidDataServiceSupport implements logger.info("Done reading authentication holders"); } - //used by readAuthenticationHolders - private OAuth2Request readAuthorizationRequest(JsonReader reader) throws IOException { - Set scope = new LinkedHashSet(); - Set resourceIds = new HashSet(); - boolean approved = false; - Collection authorities = new HashSet(); - Map requestParameters = new HashMap(); - Set responseTypes = new HashSet(); - Map extensions = new HashMap(); - String redirectUri = null; - String clientId = null; + /** + * @param reader + * @return + * @throws IOException + */ + private SavedUserAuthentication readSavedUserAuthentication(JsonReader reader) throws IOException { + SavedUserAuthentication savedUserAuth = new SavedUserAuthentication(); reader.beginObject(); + while (reader.hasNext()) { - switch (reader.peek()) { + switch(reader.peek()) { case END_OBJECT: continue; case NAME: String name = reader.nextName(); if (reader.peek() == JsonToken.NULL) { reader.skipValue(); - } else if (name.equals("requestParameters")) { - requestParameters = readMap(reader); - } else if (name.equals("clientId")) { - clientId = reader.nextString(); - } else if (name.equals("scope")) { - scope = readSet(reader); - } else if (name.equals("resourceIds")) { - resourceIds = readSet(reader); + } else if (name.equals("name")) { + savedUserAuth.setName(reader.nextString()); + } else if (name.equals("sourceClass")) { + savedUserAuth.setSourceClass(reader.nextString()); } else if (name.equals("authorities")) { Set authorityStrs = readSet(reader); - authorities = new HashSet(); + Set authorities = new HashSet(); for (String s : authorityStrs) { GrantedAuthority ga = new SimpleGrantedAuthority(s); authorities.add(ga); } - } else if (name.equals("approved")) { - approved = reader.nextBoolean(); - } else if (name.equals("denied")) { - if (approved == false) { - approved = !reader.nextBoolean(); - } - } else if (name.equals("redirectUri")) { - redirectUri = reader.nextString(); - } else if (name.equals("responseTypes")) { - responseTypes = readSet(reader); - } else if (name.equals("extensions")) { - Map extEnc = readMap(reader); - for (Entry entry : extEnc.entrySet()) { - Serializable decoded = base64UrlDecodeObject(entry.getValue(), Serializable.class); - if (decoded != null) { - extensions.put(entry.getKey(), decoded); - } - } + savedUserAuth.setAuthorities(authorities); } else { + logger.debug("Found unexpected entry"); reader.skipValue(); } break; - default: - logger.debug("Found unexpected entry"); - reader.skipValue(); - continue; } } + reader.endObject(); - return new OAuth2Request(requestParameters, clientId, authorities, approved, scope, resourceIds, redirectUri, responseTypes, extensions); + return savedUserAuth; } + Map grantOldToNewIdMap = new HashMap(); Map grantToWhitelistedSiteRefs = new HashMap(); Map> grantToAccessTokensRefs = new HashMap>(); @@ -1147,6 +1114,7 @@ public class MITREidDataService_1_2 extends MITREidDataServiceSupport implements } private void fixObjectReferences() { + logger.info("Fixing object references..."); for (Long oldRefreshTokenId : refreshTokenToClientRefs.keySet()) { String clientRef = refreshTokenToClientRefs.get(oldRefreshTokenId); ClientDetailsEntity client = clientRepository.getClientByClientId(clientRef); @@ -1230,6 +1198,7 @@ public class MITREidDataService_1_2 extends MITREidDataServiceSupport implements } accessTokenOldToNewIdMap.clear(); grantOldToNewIdMap.clear(); + logger.info("Done fixing object references."); } }