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;
+ }
}