Skip to content

Commit 952accc

Browse files
committed
Removed address fields
1 parent 78fa5f9 commit 952accc

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

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

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,7 @@ public ScopeClaimTranslationService() {
4545
scopesToClaims.put("phone", "phone_number");
4646
scopesToClaims.put("phone", "phone_number_verified");
4747

48-
scopesToClaims.put("address", "address.formatted");
49-
scopesToClaims.put("address", "address.street_address");
50-
scopesToClaims.put("address", "address.locality");
51-
scopesToClaims.put("address", "address.region");
52-
scopesToClaims.put("address", "address.postal_code");
53-
scopesToClaims.put("address", "address.country");
48+
scopesToClaims.put("address", "address");
5449

5550
claimsToFields.put("sub", "sub");
5651

@@ -75,13 +70,7 @@ public ScopeClaimTranslationService() {
7570
claimsToFields.put("phone_number", "phoneNumber");
7671
claimsToFields.put("phone_number_verified", "phoneNumberVerified");
7772

78-
//TODO: how to handle compound fields?
79-
claimsToFields.put("address.formatted", "");
80-
claimsToFields.put("address.street_address", "");
81-
claimsToFields.put("address.locality", "");
82-
claimsToFields.put("address.region", "");
83-
claimsToFields.put("address.postal_code", "");
84-
claimsToFields.put("address.country", "");
73+
claimsToFields.put("address", "address");
8574

8675
}
8776

openid-connect-common/src/main/java/org/mitre/openid/connect/view/UserInfoSerializer.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package org.mitre.openid.connect.view;
22

3+
import java.lang.reflect.Field;
34
import java.lang.reflect.InvocationTargetException;
45
import java.lang.reflect.Method;
56
import java.util.Map.Entry;
67
import java.util.Set;
78

9+
import org.mitre.openid.connect.model.DefaultUserInfo;
810
import org.mitre.openid.connect.model.UserInfo;
911
import org.mitre.openid.connect.service.ScopeClaimTranslationService;
1012
import org.slf4j.Logger;
1113
import org.slf4j.LoggerFactory;
14+
import org.springframework.util.ReflectionUtils;
1215

1316
import com.google.common.base.CaseFormat;
1417
import com.google.common.collect.Sets;
@@ -19,7 +22,7 @@ public class UserInfoSerializer {
1922

2023
private static Logger logger = LoggerFactory.getLogger(UserInfoSerializer.class);
2124

22-
private ScopeClaimTranslationService translator = new ScopeClaimTranslationService();
25+
private static ScopeClaimTranslationService translator = new ScopeClaimTranslationService();
2326

2427
/**
2528
* Build a JSON response according to the request object received.
@@ -67,6 +70,8 @@ public static JsonObject toJsonFromRequestObj(UserInfo ui, Set<String> scope, Js
6770
//TODO: is there a way to use bean processors to do bean.getfield(name)?
6871
//Method reflection is OK, but need a service to translate scopes into claim names => field names
6972

73+
74+
7075
// TODO: this method is likely to be fragile if the data model changes at all
7176

7277
//For each claim found, add it if not already present
@@ -75,6 +80,14 @@ public static JsonObject toJsonFromRequestObj(UserInfo ui, Set<String> scope, Js
7580
if (!obj.has(claimName)) {
7681
String value = "";
7782

83+
String fieldName = translator.getFieldNameForClaim(claimName);
84+
Field field = ReflectionUtils.findField(DefaultUserInfo.class, fieldName);
85+
86+
Object val = ReflectionUtils.getField(field, userinfo);
87+
88+
//TODO:how to convert val to a String? Most claims can be converted directly; address is compound
89+
90+
7891
//Process claim names to go from "claim_name" to "ClaimName"
7992
String camelClaimName = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, claimName);
8093
//Now we have "getClaimName"

0 commit comments

Comments
 (0)