From b677b96595af84c79a1721acd9a22de28e594075 Mon Sep 17 00:00:00 2001
From: arielak <arielak@mitre.org>
Date: Thu, 31 Jul 2014 16:29:57 -0400
Subject: [PATCH] Re-enabled reading of system scopes. Added 1.1 data export
 functionality

---
 .../service/impl/MITREidDataService_1_0.java  |  3 +-
 .../service/impl/MITREidDataService_1_1.java  | 35 +++++++++----------
 2 files changed, 17 insertions(+), 21 deletions(-)

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 a9b53ca81..f75bce59c 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
@@ -130,8 +130,7 @@ 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);
                     } else {
                         // unknown token, skip it
                         reader.skipValue();
diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_1.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_1.java
index 6f94b86a2..4117f0b34 100644
--- a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_1.java
+++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_1.java
@@ -108,7 +108,7 @@ public class MITREidDataService_1_1 implements MITREidDataService {
         writer.beginObject();
 
         // clients list
-        /*writer.name(CLIENTS);
+        writer.name(CLIENTS);
         writer.beginArray();
         writeClients(writer);
         writer.endArray();
@@ -135,7 +135,7 @@ public class MITREidDataService_1_1 implements MITREidDataService {
 
         writer.name(SYSTEMSCOPES);
         writer.beginArray();
-        writeSystemScopes(writer);*/
+        writeSystemScopes(writer);
         writer.endArray();
 
         writer.endObject(); // end mitreid-connect-1.1
@@ -228,7 +228,7 @@ public class MITREidDataService_1_1 implements MITREidDataService {
     /**
      * @param writer
      */
-    /*private void writeAuthenticationHolders(JsonWriter writer) {
+    private void writeAuthenticationHolders(JsonWriter writer) {
         Collection<AuthenticationHolderEntity> holders = new ArrayList<AuthenticationHolderEntity>();
         try {
             holders = authHolderRepository.getAll();
@@ -255,20 +255,14 @@ public class MITREidDataService_1_1 implements MITREidDataService {
             }
         }
         logger.info("Done writing authentication holders");
-    }*/
+    }
 
     //used by writeAuthenticationHolders
-    /*private void writeAuthorizationRequest(OAuth2Request authReq, JsonWriter writer) throws IOException {
+    private void writeAuthorizationRequest(OAuth2Request authReq, JsonWriter writer) throws IOException {
         writer.beginObject();
-        writer.name("authorizationParameters");
+        writer.name("requestParameters");
         writer.beginObject();
-        for (Entry<String, String> entry : authReq.getAuthorizationParameters().entrySet()) {
-            writer.name(entry.getKey()).value(entry.getValue());
-        }
-        writer.endObject();
-        writer.name("approvalParameters");
-        writer.beginObject();
-        for (Entry<String, String> entry : authReq.getApprovalParameters().entrySet()) {
+        for (Entry<String, String> entry : authReq.getRequestParameters().entrySet()) {
             writer.name(entry.getKey()).value(entry.getValue());
         }
         writer.endObject();
@@ -293,8 +287,6 @@ public class MITREidDataService_1_1 implements MITREidDataService {
         }
         writer.endArray();
         writer.name("approved").value(authReq.isApproved());
-        writer.name("denied").value(authReq.isDenied());
-        writer.name("state").value(authReq.getState());
         writer.name("redirectUri").value(authReq.getRedirectUri());
         writer.name("responseTypes");
         writer.beginArray();
@@ -302,8 +294,14 @@ public class MITREidDataService_1_1 implements MITREidDataService {
             writer.value(s);
         }
         writer.endArray();
+        writer.name("extensions");
+        writer.beginObject();
+        for (Entry<String, Serializable> entry : authReq.getExtensions().entrySet()) {
+            writer.name(entry.getKey()).value(base64UrlEncodeObject(entry.getValue()));
+        }
         writer.endObject();
-    }*/
+        writer.endObject();
+    }
 
     private String base64UrlEncodeObject(Serializable obj) {
         String encoded = null;
@@ -508,7 +506,7 @@ public class MITREidDataService_1_1 implements MITREidDataService {
     @Override
     public void importData(JsonReader reader) throws IOException {
 
-        logger.info("Reading configuration for 1.0");
+        logger.info("Reading configuration for 1.1");
 
         // this *HAS* to start as an object
         /*reader.beginObject();
@@ -530,8 +528,7 @@ public class MITREidDataService_1_1 implements MITREidDataService {
                     } else if (name.equals(REFRESHTOKENS)) {
                         readRefreshTokens(reader);
                     } else if (name.equals(SYSTEMSCOPES)) {
-                        //readSystemScopes(reader);
-                        reader.skipValue();
+                        readSystemScopes(reader);
                     } else {
                         // unknown token, skip it
                         reader.skipValue();