You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2016/07/20 13:40:22 UTC

[2/2] cxf git commit: Make it easier to specify additional claims to return in the UserInfoService

Make it easier to specify additional claims to return in the UserInfoService


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/aca7b6c7
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/aca7b6c7
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/aca7b6c7

Branch: refs/heads/3.1.x-fixes
Commit: aca7b6c780cec2af1004491c0df6e78164190e47
Parents: 56dda74
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Wed Jul 20 14:39:55 2016 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Wed Jul 20 14:39:55 2016 +0100

----------------------------------------------------------------------
 .../rs/security/oidc/idp/UserInfoService.java   | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/aca7b6c7/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/UserInfoService.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/UserInfoService.java b/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/UserInfoService.java
index 7c4ec07..5b83a7b 100644
--- a/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/UserInfoService.java
+++ b/rt/rs/security/sso/oidc/src/main/java/org/apache/cxf/rs/security/oidc/idp/UserInfoService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.cxf.rs.security.oidc.idp;
 
+import java.util.Collections;
+import java.util.List;
+
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
@@ -39,6 +42,7 @@ import org.apache.cxf.rs.security.oidc.common.UserInfo;
 public class UserInfoService extends OAuthServerJoseJwtProducer {
     private UserInfoProvider userInfoProvider;
     private OAuthDataProvider oauthDataProvider;
+    private List<String> additionalClaims = Collections.emptyList();
     
     @Context
     private MessageContext mc;
@@ -101,6 +105,15 @@ public class UserInfoService extends OAuthServerJoseJwtProducer {
         if (idToken.getNickName() != null) {
             userInfo.setNickName(idToken.getNickName());
         }
+        
+        if (additionalClaims != null && !additionalClaims.isEmpty()) {
+            for (String additionalClaim : additionalClaims) {
+                if (idToken.containsProperty(additionalClaim)) {
+                    userInfo.setClaim(additionalClaim, idToken.getClaim(additionalClaim));
+                }
+            }
+        }
+        
         //etc
         return userInfo;
     }
@@ -112,4 +125,11 @@ public class UserInfoService extends OAuthServerJoseJwtProducer {
     public void setOauthDataProvider(OAuthDataProvider oauthDataProvider) {
         this.oauthDataProvider = oauthDataProvider;
     }
+
+    /**
+     * Set additional claims to return (if they exist in the IdToken).
+     */
+    public void setAdditionalClaims(List<String> additionalClaims) {
+        this.additionalClaims = additionalClaims;
+    }
 }