From 1609b6c52cd2ca81d6146df1b3a734edf5fddf6b Mon Sep 17 00:00:00 2001 From: Jj! Date: Thu, 9 Sep 2021 14:30:03 -0500 Subject: [PATCH] fix to return a single value from pac4j for certain attributes --- .../unicon/shibui/pac4j/BetterSAML2Profile.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java index 38ec220f3..f948304cf 100644 --- a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java @@ -13,19 +13,26 @@ public BetterSAML2Profile(final SimpleProfileMapping simpleProfileMapping) { this.profileMapping = simpleProfileMapping; } + private String getSingleAttributeValue(Object attribute) { + if (attribute instanceof Collection) { + return (String) ((Collection)attribute).toArray()[0]; + } + return (String) attribute; + } + @Override public String getEmail() { - return (String) getAttribute(profileMapping.getEmail()); + return getSingleAttributeValue(getAttribute(profileMapping.getEmail())); } @Override public String getFamilyName() { - return (String) getAttribute(profileMapping.getLastName()); + return getSingleAttributeValue(getAttribute(profileMapping.getLastName())); } @Override public String getFirstName() { - return (String) getAttribute(profileMapping.getFirstName()); + return getSingleAttributeValue(getAttribute(profileMapping.getFirstName())); } public List getGroups() { @@ -42,4 +49,4 @@ public String getUsername() { } } -} \ No newline at end of file +}