Skip to content

Commit

Permalink
Deserialize objects using the constructor instead of the builder
Browse files Browse the repository at this point in the history
  • Loading branch information
agologan committed Aug 13, 2021
1 parent ca508b8 commit 31f187b
Show file tree
Hide file tree
Showing 8 changed files with 76 additions and 103 deletions.
33 changes: 14 additions & 19 deletions library/java/net/openid/appauth/AuthorizationRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -1142,28 +1142,23 @@ public String jsonSerializeString() {
public static AuthorizationRequest jsonDeserialize(@NonNull JSONObject json)
throws JSONException {
checkNotNull(json, "json cannot be null");
AuthorizationRequest.Builder builder = new AuthorizationRequest.Builder(
return new AuthorizationRequest(
AuthorizationServiceConfiguration.fromJson(json.getJSONObject(KEY_CONFIGURATION)),
JsonUtil.getString(json, KEY_CLIENT_ID),
JsonUtil.getString(json, KEY_RESPONSE_TYPE),
JsonUtil.getUri(json, KEY_REDIRECT_URI))
.setDisplay(JsonUtil.getStringIfDefined(json, KEY_DISPLAY))
.setLoginHint(JsonUtil.getStringIfDefined(json, KEY_LOGIN_HINT))
.setPrompt(JsonUtil.getStringIfDefined(json, KEY_PROMPT))
.setUiLocales(JsonUtil.getStringIfDefined(json, KEY_UI_LOCALES))
.setState(JsonUtil.getStringIfDefined(json, KEY_STATE))
.setNonce(JsonUtil.getStringIfDefined(json, KEY_NONCE))
.setCodeVerifier(
JsonUtil.getStringIfDefined(json, KEY_CODE_VERIFIER),
JsonUtil.getStringIfDefined(json, KEY_CODE_VERIFIER_CHALLENGE),
JsonUtil.getStringIfDefined(json, KEY_CODE_VERIFIER_CHALLENGE_METHOD))
.setResponseMode(JsonUtil.getStringIfDefined(json, KEY_RESPONSE_MODE))
.setAdditionalParameters(JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));

if (json.has(KEY_SCOPE)) {
builder.setScopes(AsciiStringListUtil.stringToSet(JsonUtil.getString(json, KEY_SCOPE)));
}
return builder.build();
JsonUtil.getUri(json, KEY_REDIRECT_URI),
JsonUtil.getStringIfDefined(json, KEY_DISPLAY),
JsonUtil.getStringIfDefined(json, KEY_LOGIN_HINT),
JsonUtil.getStringIfDefined(json, KEY_PROMPT),
JsonUtil.getStringIfDefined(json, KEY_UI_LOCALES),
JsonUtil.getStringIfDefined(json, KEY_SCOPE),
JsonUtil.getStringIfDefined(json, KEY_STATE),
JsonUtil.getStringIfDefined(json, KEY_NONCE),
JsonUtil.getStringIfDefined(json, KEY_CODE_VERIFIER),
JsonUtil.getStringIfDefined(json, KEY_CODE_VERIFIER_CHALLENGE),
JsonUtil.getStringIfDefined(json, KEY_CODE_VERIFIER_CHALLENGE_METHOD),
JsonUtil.getStringIfDefined(json, KEY_RESPONSE_MODE),
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
}

/**
Expand Down
24 changes: 10 additions & 14 deletions library/java/net/openid/appauth/AuthorizationResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -510,20 +510,16 @@ public static AuthorizationResponse jsonDeserialize(@NonNull JSONObject json)
"authorization request not provided and not found in JSON");
}

AuthorizationRequest request =
AuthorizationRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST));

return new AuthorizationResponse.Builder(request)
.setTokenType(JsonUtil.getStringIfDefined(json, KEY_TOKEN_TYPE))
.setAccessToken(JsonUtil.getStringIfDefined(json, KEY_ACCESS_TOKEN))
.setAuthorizationCode(JsonUtil.getStringIfDefined(json, KEY_AUTHORIZATION_CODE))
.setIdToken(JsonUtil.getStringIfDefined(json, KEY_ID_TOKEN))
.setScope(JsonUtil.getStringIfDefined(json, KEY_SCOPE))
.setState(JsonUtil.getStringIfDefined(json, KEY_STATE))
.setAccessTokenExpirationTime(JsonUtil.getLongIfDefined(json, KEY_EXPIRES_AT))
.setAdditionalParameters(
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS))
.build();
return new AuthorizationResponse(
AuthorizationRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST)),
JsonUtil.getStringIfDefined(json, KEY_STATE),
JsonUtil.getStringIfDefined(json, KEY_TOKEN_TYPE),
JsonUtil.getStringIfDefined(json, KEY_AUTHORIZATION_CODE),
JsonUtil.getStringIfDefined(json, KEY_ACCESS_TOKEN),
JsonUtil.getLongIfDefined(json, KEY_EXPIRES_AT),
JsonUtil.getStringIfDefined(json, KEY_ID_TOKEN),
JsonUtil.getStringIfDefined(json, KEY_SCOPE),
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
}

/**
Expand Down
16 changes: 7 additions & 9 deletions library/java/net/openid/appauth/EndSessionRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -325,15 +325,13 @@ public String jsonSerializeString() {
public static EndSessionRequest jsonDeserialize(@NonNull JSONObject json)
throws JSONException {
checkNotNull(json, "json cannot be null");
EndSessionRequest.Builder builder = new EndSessionRequest.Builder(
AuthorizationServiceConfiguration.fromJson(json.getJSONObject(KEY_CONFIGURATION)))
.setIdTokenHint(JsonUtil.getStringIfDefined(json, KEY_ID_TOKEN_HINT))
.setPostLogoutRedirectUri(JsonUtil.getUriIfDefined(json,
KEY_POST_LOGOUT_REDIRECT_URI))
.setState(JsonUtil.getStringIfDefined(json, KEY_STATE))
.setUiLocales(JsonUtil.getStringIfDefined(json, KEY_UI_LOCALES))
.setAdditionalParameters(JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
return builder.build();
return new EndSessionRequest(
AuthorizationServiceConfiguration.fromJson(json.getJSONObject(KEY_CONFIGURATION)),
JsonUtil.getStringIfDefined(json, KEY_ID_TOKEN_HINT),
JsonUtil.getUriIfDefined(json, KEY_POST_LOGOUT_REDIRECT_URI),
JsonUtil.getStringIfDefined(json, KEY_STATE),
JsonUtil.getStringIfDefined(json, KEY_UI_LOCALES),
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
}

/**
Expand Down
8 changes: 2 additions & 6 deletions library/java/net/openid/appauth/EndSessionResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -142,13 +142,9 @@ public static EndSessionResponse jsonDeserialize(@NonNull JSONObject json)
"authorization request not provided and not found in JSON");
}

EndSessionRequest request =
EndSessionRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST));

return new EndSessionResponse(
request,
JsonUtil.getStringIfDefined(json, KEY_STATE)
);
EndSessionRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST)),
JsonUtil.getStringIfDefined(json, KEY_STATE));
}

/**
Expand Down
26 changes: 11 additions & 15 deletions library/java/net/openid/appauth/RegistrationRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -454,21 +454,17 @@ private JSONObject jsonSerializeParams() {
public static RegistrationRequest jsonDeserialize(@NonNull JSONObject json)
throws JSONException {
checkNotNull(json, "json must not be null");
List<Uri> redirectUris = JsonUtil.getUriList(json, PARAM_REDIRECT_URIS);

Builder builder = new Builder(
AuthorizationServiceConfiguration.fromJson(json.getJSONObject(KEY_CONFIGURATION)),
redirectUris)
.setResponseTypeValues(JsonUtil.getStringListIfDefined(json, PARAM_RESPONSE_TYPES))
.setGrantTypeValues(JsonUtil.getStringListIfDefined(json, PARAM_GRANT_TYPES))
.setSubjectType(JsonUtil.getStringIfDefined(json, PARAM_SUBJECT_TYPE))
.setJwksUri(JsonUtil.getUriIfDefined(json, PARAM_JWKS_URI))
.setJwks(JsonUtil.getJsonObjectIfDefined(json, PARAM_JWKS))
.setTokenEndpointAuthenticationMethod(JsonUtil.getStringIfDefined(json,
PARAM_TOKEN_ENDPOINT_AUTHENTICATION_METHOD))
.setAdditionalParameters(JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));

return builder.build();

return new RegistrationRequest(
AuthorizationServiceConfiguration.fromJson(json.getJSONObject(KEY_CONFIGURATION)),
JsonUtil.getUriList(json, PARAM_REDIRECT_URIS),
JsonUtil.getStringListIfDefined(json, PARAM_RESPONSE_TYPES),
JsonUtil.getStringListIfDefined(json, PARAM_GRANT_TYPES),
JsonUtil.getStringIfDefined(json, PARAM_SUBJECT_TYPE),
JsonUtil.getUriIfDefined(json, PARAM_JWKS_URI),
JsonUtil.getJsonObjectIfDefined(json, PARAM_JWKS),
JsonUtil.getStringIfDefined(json, PARAM_TOKEN_ENDPOINT_AUTHENTICATION_METHOD),
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
}

/**
Expand Down
26 changes: 10 additions & 16 deletions library/java/net/openid/appauth/RegistrationResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -450,22 +450,16 @@ public static RegistrationResponse jsonDeserialize(@NonNull JSONObject json)
throw new IllegalArgumentException("registration request not found in JSON");
}

return new Builder(
RegistrationRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST)))
.setClientId(JsonUtil.getString(json, PARAM_CLIENT_ID))
.setClientIdIssuedAt(JsonUtil.getLongIfDefined(json, PARAM_CLIENT_ID_ISSUED_AT))
.setClientSecret(JsonUtil.getStringIfDefined(json, PARAM_CLIENT_SECRET))
.setClientSecretExpiresAt(
JsonUtil.getLongIfDefined(json, PARAM_CLIENT_SECRET_EXPIRES_AT))
.setRegistrationAccessToken(
JsonUtil.getStringIfDefined(json, PARAM_REGISTRATION_ACCESS_TOKEN))
.setRegistrationClientUri(
JsonUtil.getUriIfDefined(json, PARAM_REGISTRATION_CLIENT_URI))
.setTokenEndpointAuthMethod(
JsonUtil.getStringIfDefined(json, PARAM_TOKEN_ENDPOINT_AUTH_METHOD))
.setAdditionalParameters(
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS))
.build();
return new RegistrationResponse(
RegistrationRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST)),
JsonUtil.getString(json, PARAM_CLIENT_ID),
JsonUtil.getLongIfDefined(json, PARAM_CLIENT_ID_ISSUED_AT),
JsonUtil.getStringIfDefined(json, PARAM_CLIENT_SECRET),
JsonUtil.getLongIfDefined(json, PARAM_CLIENT_SECRET_EXPIRES_AT),
JsonUtil.getStringIfDefined(json, PARAM_REGISTRATION_ACCESS_TOKEN),
JsonUtil.getUriIfDefined(json, PARAM_REGISTRATION_CLIENT_URI),
JsonUtil.getStringIfDefined(json, PARAM_TOKEN_ENDPOINT_AUTH_METHOD),
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
}

/**
Expand Down
27 changes: 13 additions & 14 deletions library/java/net/openid/appauth/TokenRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ public class TokenRequest {
@VisibleForTesting
static final String KEY_REFRESH_TOKEN = "refreshToken";
@VisibleForTesting
static final String KEY_CODE_VERIFIER = "codeVerifier";
@VisibleForTesting
static final String KEY_ADDITIONAL_PARAMETERS = "additionalParameters";

public static final String PARAM_CLIENT_ID = "client_id";
Expand Down Expand Up @@ -551,6 +553,7 @@ public JSONObject jsonSerialize() {
JsonUtil.putIfNotNull(json, KEY_SCOPE, scope);
JsonUtil.putIfNotNull(json, KEY_AUTHORIZATION_CODE, authorizationCode);
JsonUtil.putIfNotNull(json, KEY_REFRESH_TOKEN, refreshToken);
JsonUtil.putIfNotNull(json, KEY_CODE_VERIFIER, codeVerifier);
JsonUtil.put(json, KEY_ADDITIONAL_PARAMETERS,
JsonUtil.mapToJsonObject(additionalParameters));
return json;
Expand All @@ -575,21 +578,17 @@ public String jsonSerializeString() {
public static TokenRequest jsonDeserialize(JSONObject json) throws JSONException {
checkNotNull(json, "json object cannot be null");

TokenRequest.Builder builder = new TokenRequest.Builder(
return new TokenRequest(
AuthorizationServiceConfiguration.fromJson(json.getJSONObject(KEY_CONFIGURATION)),
JsonUtil.getString(json, KEY_CLIENT_ID))
.setRedirectUri(JsonUtil.getUriIfDefined(json, KEY_REDIRECT_URI))
.setGrantType(JsonUtil.getString(json, KEY_GRANT_TYPE))
.setRefreshToken(JsonUtil.getStringIfDefined(json, KEY_REFRESH_TOKEN))
.setAuthorizationCode(JsonUtil.getStringIfDefined(json, KEY_AUTHORIZATION_CODE))
.setAdditionalParameters(JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS))
.setNonce(JsonUtil.getStringIfDefined(json, KEY_NONCE));

if (json.has(KEY_SCOPE)) {
builder.setScopes(AsciiStringListUtil.stringToSet(JsonUtil.getString(json, KEY_SCOPE)));
}

return builder.build();
JsonUtil.getString(json, KEY_CLIENT_ID),
JsonUtil.getStringIfDefined(json, KEY_NONCE),
JsonUtil.getString(json, KEY_GRANT_TYPE),
JsonUtil.getUriIfDefined(json, KEY_REDIRECT_URI),
JsonUtil.getStringIfDefined(json, KEY_SCOPE),
JsonUtil.getStringIfDefined(json, KEY_AUTHORIZATION_CODE),
JsonUtil.getStringIfDefined(json, KEY_REFRESH_TOKEN),
JsonUtil.getStringIfDefined(json, KEY_CODE_VERIFIER),
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
}

/**
Expand Down
19 changes: 9 additions & 10 deletions library/java/net/openid/appauth/TokenResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -458,16 +458,15 @@ public static TokenResponse jsonDeserialize(@NonNull JSONObject json) throws JSO
throw new IllegalArgumentException(
"token request not provided and not found in JSON");
}
return new TokenResponse.Builder(
TokenRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST)))
.setTokenType(JsonUtil.getStringIfDefined(json, KEY_TOKEN_TYPE))
.setAccessToken(JsonUtil.getStringIfDefined(json, KEY_ACCESS_TOKEN))
.setAccessTokenExpirationTime(JsonUtil.getLongIfDefined(json, KEY_EXPIRES_AT))
.setIdToken(JsonUtil.getStringIfDefined(json, KEY_ID_TOKEN))
.setRefreshToken(JsonUtil.getStringIfDefined(json, KEY_REFRESH_TOKEN))
.setScope(JsonUtil.getStringIfDefined(json, KEY_SCOPE))
.setAdditionalParameters(JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS))
.build();
return new TokenResponse(
TokenRequest.jsonDeserialize(json.getJSONObject(KEY_REQUEST)),
JsonUtil.getStringIfDefined(json, KEY_TOKEN_TYPE),
JsonUtil.getStringIfDefined(json, KEY_ACCESS_TOKEN),
JsonUtil.getLongIfDefined(json, KEY_EXPIRES_AT),
JsonUtil.getStringIfDefined(json, KEY_ID_TOKEN),
JsonUtil.getStringIfDefined(json, KEY_REFRESH_TOKEN),
JsonUtil.getStringIfDefined(json, KEY_SCOPE),
JsonUtil.getStringMap(json, KEY_ADDITIONAL_PARAMETERS));
}

/**
Expand Down

0 comments on commit 31f187b

Please sign in to comment.