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