Skip to content

Commit d875d52

Browse files
committed
updated data import/export services for 1.3
1 parent 7725fcf commit d875d52

File tree

6 files changed

+3188
-1247
lines changed

6 files changed

+3188
-1247
lines changed

openid-connect-common/src/main/java/org/mitre/openid/connect/service/MITREidDataService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public interface MITREidDataService {
3333
public static final String MITREID_CONNECT_1_0 = "mitreid-connect-1.0";
3434
public static final String MITREID_CONNECT_1_1 = "mitreid-connect-1.1";
3535
public static final String MITREID_CONNECT_1_2 = "mitreid-connect-1.2";
36+
public static final String MITREID_CONNECT_1_3 = "mitreid-connect-1.3";
3637

3738
// member names
3839
public static final String REFRESHTOKENS = "refreshTokens";

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

Lines changed: 1 addition & 361 deletions
Original file line numberDiff line numberDiff line change
@@ -170,367 +170,7 @@ public class MITREidDataService_1_2 extends MITREidDataServiceSupport implements
170170
@Override
171171
public void exportData(JsonWriter writer) throws IOException {
172172

173-
// version tag at the root
174-
writer.name(MITREID_CONNECT_1_2);
175-
176-
writer.beginObject();
177-
178-
// clients list
179-
writer.name(CLIENTS);
180-
writer.beginArray();
181-
writeClients(writer);
182-
writer.endArray();
183-
184-
writer.name(GRANTS);
185-
writer.beginArray();
186-
writeGrants(writer);
187-
writer.endArray();
188-
189-
writer.name(WHITELISTEDSITES);
190-
writer.beginArray();
191-
writeWhitelistedSites(writer);
192-
writer.endArray();
193-
194-
writer.name(BLACKLISTEDSITES);
195-
writer.beginArray();
196-
writeBlacklistedSites(writer);
197-
writer.endArray();
198-
199-
writer.name(AUTHENTICATIONHOLDERS);
200-
writer.beginArray();
201-
writeAuthenticationHolders(writer);
202-
writer.endArray();
203-
204-
writer.name(ACCESSTOKENS);
205-
writer.beginArray();
206-
writeAccessTokens(writer);
207-
writer.endArray();
208-
209-
writer.name(REFRESHTOKENS);
210-
writer.beginArray();
211-
writeRefreshTokens(writer);
212-
writer.endArray();
213-
214-
writer.name(SYSTEMSCOPES);
215-
writer.beginArray();
216-
writeSystemScopes(writer);
217-
writer.endArray();
218-
219-
writer.endObject(); // end mitreid-connect-1.2
220-
}
221-
222-
/**
223-
* @param writer
224-
*/
225-
private void writeRefreshTokens(JsonWriter writer) throws IOException {
226-
for (OAuth2RefreshTokenEntity token : tokenRepository.getAllRefreshTokens()) {
227-
writer.beginObject();
228-
writer.name(ID).value(token.getId());
229-
writer.name(EXPIRATION).value(toUTCString(token.getExpiration()));
230-
writer.name(CLIENT_ID)
231-
.value((token.getClient() != null) ? token.getClient().getClientId() : null);
232-
writer.name(AUTHENTICATION_HOLDER_ID)
233-
.value((token.getAuthenticationHolder() != null) ? token.getAuthenticationHolder().getId() : null);
234-
writer.name(VALUE).value(token.getValue());
235-
writer.endObject();
236-
logger.debug("Wrote refresh token {}", token.getId());
237-
}
238-
logger.info("Done writing refresh tokens");
239-
}
240-
241-
/**
242-
* @param writer
243-
*/
244-
private void writeAccessTokens(JsonWriter writer) throws IOException {
245-
for (OAuth2AccessTokenEntity token : tokenRepository.getAllAccessTokens()) {
246-
writer.beginObject();
247-
writer.name(ID).value(token.getId());
248-
writer.name(EXPIRATION).value(toUTCString(token.getExpiration()));
249-
writer.name(CLIENT_ID)
250-
.value((token.getClient() != null) ? token.getClient().getClientId() : null);
251-
writer.name(AUTHENTICATION_HOLDER_ID)
252-
.value((token.getAuthenticationHolder() != null) ? token.getAuthenticationHolder().getId() : null);
253-
writer.name(REFRESH_TOKEN_ID)
254-
.value((token.getRefreshToken() != null) ? token.getRefreshToken().getId() : null);
255-
writer.name(ID_TOKEN_ID)
256-
.value((token.getIdToken() != null) ? token.getIdToken().getId() : null);
257-
writer.name(SCOPE);
258-
writer.beginArray();
259-
for (String s : token.getScope()) {
260-
writer.value(s);
261-
}
262-
writer.endArray();
263-
writer.name(TYPE).value(token.getTokenType());
264-
writer.name(VALUE).value(token.getValue());
265-
writer.endObject();
266-
logger.debug("Wrote access token {}", token.getId());
267-
}
268-
logger.info("Done writing access tokens");
269-
}
270-
271-
/**
272-
* @param writer
273-
*/
274-
private void writeAuthenticationHolders(JsonWriter writer) throws IOException {
275-
for (AuthenticationHolderEntity holder : authHolderRepository.getAll()) {
276-
writer.beginObject();
277-
writer.name(ID).value(holder.getId());
278-
279-
writer.name(REQUEST_PARAMETERS);
280-
writer.beginObject();
281-
for (Entry<String, String> entry : holder.getRequestParameters().entrySet()) {
282-
writer.name(entry.getKey()).value(entry.getValue());
283-
}
284-
writer.endObject();
285-
writer.name(CLIENT_ID).value(holder.getClientId());
286-
Set<String> scope = holder.getScope();
287-
writer.name(SCOPE);
288-
writer.beginArray();
289-
for (String s : scope) {
290-
writer.value(s);
291-
}
292-
writer.endArray();
293-
writer.name(RESOURCE_IDS);
294-
writer.beginArray();
295-
if (holder.getResourceIds() != null) {
296-
for (String s : holder.getResourceIds()) {
297-
writer.value(s);
298-
}
299-
}
300-
writer.endArray();
301-
writer.name(AUTHORITIES);
302-
writer.beginArray();
303-
for (GrantedAuthority authority : holder.getAuthorities()) {
304-
writer.value(authority.getAuthority());
305-
}
306-
writer.endArray();
307-
writer.name(APPROVED).value(holder.isApproved());
308-
writer.name(REDIRECT_URI).value(holder.getRedirectUri());
309-
writer.name(RESPONSE_TYPES);
310-
writer.beginArray();
311-
for (String s : holder.getResponseTypes()) {
312-
writer.value(s);
313-
}
314-
writer.endArray();
315-
writer.name(EXTENSIONS);
316-
writer.beginObject();
317-
for (Entry<String, Serializable> entry : holder.getExtensions().entrySet()) {
318-
// while the extension map itself is Serializable, we enforce storage of Strings
319-
if (entry.getValue() instanceof String) {
320-
writer.name(entry.getKey()).value((String) entry.getValue());
321-
} else {
322-
logger.warn("Skipping non-string extension: " + entry);
323-
}
324-
}
325-
writer.endObject();
326-
327-
writer.name(SAVED_USER_AUTHENTICATION);
328-
if (holder.getUserAuth() != null) {
329-
writer.beginObject();
330-
writer.name(NAME).value(holder.getUserAuth().getName());
331-
writer.name(SOURCE_CLASS).value(holder.getUserAuth().getSourceClass());
332-
writer.name(AUTHENTICATED).value(holder.getUserAuth().isAuthenticated());
333-
writer.name(AUTHORITIES);
334-
writer.beginArray();
335-
for (GrantedAuthority authority : holder.getUserAuth().getAuthorities()) {
336-
writer.value(authority.getAuthority());
337-
}
338-
writer.endArray();
339-
340-
writer.endObject();
341-
} else {
342-
writer.nullValue();
343-
}
344-
345-
346-
writer.endObject();
347-
logger.debug("Wrote authentication holder {}", holder.getId());
348-
}
349-
logger.info("Done writing authentication holders");
350-
}
351-
352-
/**
353-
* @param writer
354-
*/
355-
private void writeGrants(JsonWriter writer) throws IOException {
356-
for (ApprovedSite site : approvedSiteRepository.getAll()) {
357-
writer.beginObject();
358-
writer.name(ID).value(site.getId());
359-
writer.name(ACCESS_DATE).value(toUTCString(site.getAccessDate()));
360-
writer.name(CLIENT_ID).value(site.getClientId());
361-
writer.name(CREATION_DATE).value(toUTCString(site.getCreationDate()));
362-
writer.name(TIMEOUT_DATE).value(toUTCString(site.getTimeoutDate()));
363-
writer.name(USER_ID).value(site.getUserId());
364-
writer.name(ALLOWED_SCOPES);
365-
writeNullSafeArray(writer, site.getAllowedScopes());
366-
Set<OAuth2AccessTokenEntity> tokens = site.getApprovedAccessTokens();
367-
writer.name(APPROVED_ACCESS_TOKENS);
368-
writer.beginArray();
369-
for (OAuth2AccessTokenEntity token : tokens) {
370-
writer.value(token.getId());
371-
}
372-
writer.endArray();
373-
writer.endObject();
374-
logger.debug("Wrote grant {}", site.getId());
375-
}
376-
logger.info("Done writing grants");
377-
}
378-
379-
/**
380-
* @param writer
381-
*/
382-
private void writeWhitelistedSites(JsonWriter writer) throws IOException {
383-
for (WhitelistedSite wlSite : wlSiteRepository.getAll()) {
384-
writer.beginObject();
385-
writer.name(ID).value(wlSite.getId());
386-
writer.name(CLIENT_ID).value(wlSite.getClientId());
387-
writer.name(CREATOR_USER_ID).value(wlSite.getCreatorUserId());
388-
writer.name(ALLOWED_SCOPES);
389-
writeNullSafeArray(writer, wlSite.getAllowedScopes());
390-
writer.endObject();
391-
logger.debug("Wrote whitelisted site {}", wlSite.getId());
392-
}
393-
logger.info("Done writing whitelisted sites");
394-
}
395-
396-
/**
397-
* @param writer
398-
*/
399-
private void writeBlacklistedSites(JsonWriter writer) throws IOException {
400-
for (BlacklistedSite blSite : blSiteRepository.getAll()) {
401-
writer.beginObject();
402-
writer.name(ID).value(blSite.getId());
403-
writer.name(URI).value(blSite.getUri());
404-
writer.endObject();
405-
logger.debug("Wrote blacklisted site {}", blSite.getId());
406-
}
407-
logger.info("Done writing blacklisted sites");
408-
}
409-
410-
/**
411-
* @param writer
412-
*/
413-
private void writeClients(JsonWriter writer) {
414-
for (ClientDetailsEntity client : clientRepository.getAllClients()) {
415-
try {
416-
writer.beginObject();
417-
writer.name(CLIENT_ID).value(client.getClientId());
418-
writer.name(RESOURCE_IDS);
419-
writeNullSafeArray(writer, client.getResourceIds());
420-
421-
writer.name(SECRET).value(client.getClientSecret());
422-
423-
writer.name(SCOPE);
424-
writeNullSafeArray(writer, client.getScope());
425-
426-
writer.name(AUTHORITIES);
427-
writer.beginArray();
428-
for (GrantedAuthority authority : client.getAuthorities()) {
429-
writer.value(authority.getAuthority());
430-
}
431-
writer.endArray();
432-
writer.name(ACCESS_TOKEN_VALIDITY_SECONDS).value(client.getAccessTokenValiditySeconds());
433-
writer.name(REFRESH_TOKEN_VALIDITY_SECONDS).value(client.getRefreshTokenValiditySeconds());
434-
writer.name(REDIRECT_URIS);
435-
writeNullSafeArray(writer, client.getRedirectUris());
436-
writer.name(CLAIMS_REDIRECT_URIS);
437-
writeNullSafeArray(writer, client.getClaimsRedirectUris());
438-
writer.name(NAME).value(client.getClientName());
439-
writer.name(URI).value(client.getClientUri());
440-
writer.name(LOGO_URI).value(client.getLogoUri());
441-
writer.name(CONTACTS);
442-
writeNullSafeArray(writer, client.getContacts());
443-
writer.name(TOS_URI).value(client.getTosUri());
444-
writer.name(TOKEN_ENDPOINT_AUTH_METHOD)
445-
.value((client.getTokenEndpointAuthMethod() != null) ? client.getTokenEndpointAuthMethod().getValue() : null);
446-
writer.name(GRANT_TYPES);
447-
writer.beginArray();
448-
for (String s : client.getGrantTypes()) {
449-
writer.value(s);
450-
}
451-
writer.endArray();
452-
writer.name(RESPONSE_TYPES);
453-
writer.beginArray();
454-
for (String s : client.getResponseTypes()) {
455-
writer.value(s);
456-
}
457-
writer.endArray();
458-
writer.name(POLICY_URI).value(client.getPolicyUri());
459-
writer.name(JWKS_URI).value(client.getJwksUri());
460-
writer.name(JWKS).value((client.getJwks() != null) ? client.getJwks().toString() : null);
461-
writer.name(APPLICATION_TYPE)
462-
.value((client.getApplicationType() != null) ? client.getApplicationType().getValue() : null);
463-
writer.name(SECTOR_IDENTIFIER_URI).value(client.getSectorIdentifierUri());
464-
writer.name(SUBJECT_TYPE)
465-
.value((client.getSubjectType() != null) ? client.getSubjectType().getValue() : null);
466-
writer.name(REQUEST_OBJECT_SIGNING_ALG)
467-
.value((client.getRequestObjectSigningAlg() != null) ? client.getRequestObjectSigningAlg().getName() : null);
468-
writer.name(ID_TOKEN_SIGNED_RESPONSE_ALG)
469-
.value((client.getIdTokenSignedResponseAlg() != null) ? client.getIdTokenSignedResponseAlg().getName() : null);
470-
writer.name(ID_TOKEN_ENCRYPTED_RESPONSE_ALG)
471-
.value((client.getIdTokenEncryptedResponseAlg() != null) ? client.getIdTokenEncryptedResponseAlg().getName() : null);
472-
writer.name(ID_TOKEN_ENCRYPTED_RESPONSE_ENC)
473-
.value((client.getIdTokenEncryptedResponseEnc() != null) ? client.getIdTokenEncryptedResponseEnc().getName() : null);
474-
writer.name(USER_INFO_SIGNED_RESPONSE_ALG)
475-
.value((client.getUserInfoSignedResponseAlg() != null) ? client.getUserInfoSignedResponseAlg().getName() : null);
476-
writer.name(USER_INFO_ENCRYPTED_RESPONSE_ALG)
477-
.value((client.getUserInfoEncryptedResponseAlg() != null) ? client.getUserInfoEncryptedResponseAlg().getName() : null);
478-
writer.name(USER_INFO_ENCRYPTED_RESPONSE_ENC)
479-
.value((client.getUserInfoEncryptedResponseEnc() != null) ? client.getUserInfoEncryptedResponseEnc().getName() : null);
480-
writer.name(TOKEN_ENDPOINT_AUTH_SIGNING_ALG)
481-
.value((client.getTokenEndpointAuthSigningAlg() != null) ? client.getTokenEndpointAuthSigningAlg().getName() : null);
482-
writer.name(DEFAULT_MAX_AGE).value(client.getDefaultMaxAge());
483-
Boolean requireAuthTime = null;
484-
try {
485-
requireAuthTime = client.getRequireAuthTime();
486-
} catch (NullPointerException e) {
487-
}
488-
if (requireAuthTime != null) {
489-
writer.name(REQUIRE_AUTH_TIME).value(requireAuthTime);
490-
}
491-
writer.name(DEFAULT_ACR_VALUES);
492-
writeNullSafeArray(writer, client.getDefaultACRvalues());
493-
writer.name(INTITATE_LOGIN_URI).value(client.getInitiateLoginUri());
494-
writer.name(POST_LOGOUT_REDIRECT_URI);
495-
writeNullSafeArray(writer, client.getPostLogoutRedirectUris());
496-
writer.name(REQUEST_URIS);
497-
writeNullSafeArray(writer, client.getRequestUris());
498-
writer.name(DESCRIPTION).value(client.getClientDescription());
499-
writer.name(ALLOW_INTROSPECTION).value(client.isAllowIntrospection());
500-
writer.name(REUSE_REFRESH_TOKEN).value(client.isReuseRefreshToken());
501-
writer.name(CLEAR_ACCESS_TOKENS_ON_REFRESH).value(client.isClearAccessTokensOnRefresh());
502-
writer.name(DYNAMICALLY_REGISTERED).value(client.isDynamicallyRegistered());
503-
writer.endObject();
504-
logger.debug("Wrote client {}", client.getId());
505-
} catch (IOException ex) {
506-
logger.error("Unable to write client {}", client.getId(), ex);
507-
}
508-
}
509-
logger.info("Done writing clients");
510-
}
511-
512-
/**
513-
* @param writer
514-
*/
515-
private void writeSystemScopes(JsonWriter writer) {
516-
for (SystemScope sysScope : sysScopeRepository.getAll()) {
517-
try {
518-
writer.beginObject();
519-
writer.name(ID).value(sysScope.getId());
520-
writer.name(DESCRIPTION).value(sysScope.getDescription());
521-
writer.name(ICON).value(sysScope.getIcon());
522-
writer.name(VALUE).value(sysScope.getValue());
523-
writer.name(RESTRICTED).value(sysScope.isRestricted());
524-
writer.name(STRUCTURED).value(sysScope.isStructured());
525-
writer.name(STRUCTURED_PARAMETER).value(sysScope.getStructuredParamDescription());
526-
writer.name(DEFAULT_SCOPE).value(sysScope.isDefaultScope());
527-
writer.endObject();
528-
logger.debug("Wrote system scope {}", sysScope.getId());
529-
} catch (IOException ex) {
530-
logger.error("Unable to write system scope {}", sysScope.getId(), ex);
531-
}
532-
}
533-
logger.info("Done writing system scopes");
173+
throw new UnsupportedOperationException("Can not export 1.2 format from this version.");
534174
}
535175

536176
/* (non-Javadoc)

0 commit comments

Comments
 (0)