Skip to content

Commit 441b19f

Browse files
committed
fixed data export to comply with new auth holder
1 parent 8416739 commit 441b19f

File tree

2 files changed

+66
-74
lines changed

2 files changed

+66
-74
lines changed

openid-connect-common/src/main/java/org/mitre/util/JsonUtils.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -272,25 +272,6 @@ public static <T> T base64UrlDecodeObject(String encoded, Class<T> type) {
272272
}
273273
}
274274

275-
public static String base64UrlEncodeObject(Serializable obj) {
276-
if (obj == null) {
277-
return null;
278-
} else {
279-
String encoded = null;
280-
try {
281-
ByteArrayOutputStream baos = new ByteArrayOutputStream();
282-
ObjectOutputStream oos = new ObjectOutputStream(baos);
283-
oos.writeObject(obj);
284-
encoded = BaseEncoding.base64Url().encode(baos.toByteArray());
285-
oos.close();
286-
baos.close();
287-
} catch (IOException ex) {
288-
logger.error("Unable to encode object", ex);
289-
}
290-
return encoded;
291-
}
292-
}
293-
294275
public static Map readMap(JsonReader reader) throws IOException {
295276
Map map = new HashMap<String, Object>();
296277
reader.beginObject();

openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/MITREidDataService_1_2.java

Lines changed: 66 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
import com.nimbusds.jose.JWSAlgorithm;
6666

6767
import static org.mitre.util.JsonUtils.base64UrlDecodeObject;
68-
import static org.mitre.util.JsonUtils.base64UrlEncodeObject;
6968
import static org.mitre.util.JsonUtils.readMap;
7069
import static org.mitre.util.JsonUtils.readSet;
7170
import static org.mitre.util.JsonUtils.writeNullSafeArray;
@@ -211,66 +210,78 @@ private void writeAuthenticationHolders(JsonWriter writer) throws IOException {
211210
for (AuthenticationHolderEntity holder : authHolderRepository.getAll()) {
212211
writer.beginObject();
213212
writer.name("id").value(holder.getId());
214-
writer.name("authentication");
213+
214+
writer.name("requestParameters");
215215
writer.beginObject();
216-
writer.name("authorizationRequest");
217-
OAuth2Authentication oa2Auth = holder.getAuthentication();
218-
writeAuthorizationRequest(oa2Auth.getOAuth2Request(), writer);
219-
String userAuthentication = base64UrlEncodeObject(oa2Auth.getUserAuthentication());
220-
writer.name("userAuthentication").value(userAuthentication);
216+
for (Entry<String, String> entry : holder.getRequestParameters().entrySet()) {
217+
writer.name(entry.getKey()).value(entry.getValue());
218+
}
221219
writer.endObject();
220+
writer.name("clientId").value(holder.getClientId());
221+
Set<String> scope = holder.getScope();
222+
writer.name("scope");
223+
writer.beginArray();
224+
for (String s : scope) {
225+
writer.value(s);
226+
}
227+
writer.endArray();
228+
writer.name("resourceIds");
229+
writer.beginArray();
230+
if (holder.getResourceIds() != null) {
231+
for (String s : holder.getResourceIds()) {
232+
writer.value(s);
233+
}
234+
}
235+
writer.endArray();
236+
writer.name("authorities");
237+
writer.beginArray();
238+
for (GrantedAuthority authority : holder.getAuthorities()) {
239+
writer.value(authority.getAuthority());
240+
}
241+
writer.endArray();
242+
writer.name("approved").value(holder.isApproved());
243+
writer.name("redirectUri").value(holder.getRedirectUri());
244+
writer.name("responseTypes");
245+
writer.beginArray();
246+
for (String s : holder.getResponseTypes()) {
247+
writer.value(s);
248+
}
249+
writer.endArray();
250+
writer.name("extensions");
251+
writer.beginObject();
252+
for (Entry<String, Serializable> entry : holder.getExtensions().entrySet()) {
253+
// while the extension map itself is Serializable, we enforce storage of Strings
254+
if (entry.getValue() instanceof String) {
255+
writer.name(entry.getKey()).value((String) entry.getValue());
256+
} else {
257+
logger.warn("Skipping non-string extension: " + entry);
258+
}
259+
}
222260
writer.endObject();
223-
logger.debug("Wrote authentication holder {}", holder.getId());
224-
}
225-
logger.info("Done writing authentication holders");
226-
}
227261

228-
//used by writeAuthenticationHolders
229-
private void writeAuthorizationRequest(OAuth2Request authReq, JsonWriter writer) throws IOException {
230-
writer.beginObject();
231-
writer.name("requestParameters");
232-
writer.beginObject();
233-
for (Entry<String, String> entry : authReq.getRequestParameters().entrySet()) {
234-
writer.name(entry.getKey()).value(entry.getValue());
235-
}
236-
writer.endObject();
237-
writer.name("clientId").value(authReq.getClientId());
238-
Set<String> scope = authReq.getScope();
239-
writer.name("scope");
240-
writer.beginArray();
241-
for (String s : scope) {
242-
writer.value(s);
243-
}
244-
writer.endArray();
245-
writer.name("resourceIds");
246-
writer.beginArray();
247-
if (authReq.getResourceIds() != null) {
248-
for (String s : authReq.getResourceIds()) {
249-
writer.value(s);
262+
writer.name("savedUserAuthentication");
263+
if (holder.getUserAuth() != null) {
264+
writer.beginObject();
265+
writer.name("name").value(holder.getUserAuth().getName());
266+
writer.name("sourceClass").value(holder.getUserAuth().getSourceClass());
267+
268+
writer.name("authorities");
269+
writer.beginArray();
270+
for (GrantedAuthority authority : holder.getUserAuth().getAuthorities()) {
271+
writer.value(authority.getAuthority());
272+
}
273+
writer.endArray();
274+
275+
writer.endObject();
276+
} else {
277+
writer.nullValue();
250278
}
279+
280+
281+
writer.endObject();
282+
logger.debug("Wrote authentication holder {}", holder.getId());
251283
}
252-
writer.endArray();
253-
writer.name("authorities");
254-
writer.beginArray();
255-
for (GrantedAuthority authority : authReq.getAuthorities()) {
256-
writer.value(authority.getAuthority());
257-
}
258-
writer.endArray();
259-
writer.name("approved").value(authReq.isApproved());
260-
writer.name("redirectUri").value(authReq.getRedirectUri());
261-
writer.name("responseTypes");
262-
writer.beginArray();
263-
for (String s : authReq.getResponseTypes()) {
264-
writer.value(s);
265-
}
266-
writer.endArray();
267-
writer.name("extensions");
268-
writer.beginObject();
269-
for (Entry<String, Serializable> entry : authReq.getExtensions().entrySet()) {
270-
writer.name(entry.getKey()).value(base64UrlEncodeObject(entry.getValue()));
271-
}
272-
writer.endObject();
273-
writer.endObject();
284+
logger.info("Done writing authentication holders");
274285
}
275286

276287
/**

0 commit comments

Comments
 (0)