From 933857f68f2aacd40bd9e10f272a82766143f5d7 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Tue, 20 Nov 2018 11:30:50 +0100 Subject: [PATCH] OO-3743: add some configuration possibilities to ADFS OAuth provider --- .../olat/login/oauth/spi/ADFSProvider.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/olat/login/oauth/spi/ADFSProvider.java b/src/main/java/org/olat/login/oauth/spi/ADFSProvider.java index 533df67dd24..5b688086bcf 100644 --- a/src/main/java/org/olat/login/oauth/spi/ADFSProvider.java +++ b/src/main/java/org/olat/login/oauth/spi/ADFSProvider.java @@ -31,6 +31,7 @@ import org.scribe.builder.api.Api; import org.scribe.model.Token; import org.scribe.oauth.OAuthService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; /** @@ -44,6 +45,17 @@ public class ADFSProvider implements OAuthSPI { private static final OLog log = Tracing.createLoggerFor(ADFSProvider.class); + @Value("${adfs.attributename.useridentifyer:employeeNumber}") + private String idAttributeName; + @Value("${adfs.attributename.firstName:displayNamePrintable}") + private String firstNameAttributeName; + @Value("${adfs.attributename.lastName:Sn}") + private String lastNameAttributeName; + @Value("${adfs.attributename.email:mail}") + private String emailAttributeName; + @Value("${adfs.attributename.institutionalUserIdentifier:SAMAccountName}") + private String institutionalUserIdentifierAttributeName; + @Autowired private OAuthLoginModule oauthModule; @@ -104,15 +116,14 @@ public class ADFSProvider implements OAuthSPI { try { JSONWebToken jwt = JSONWebToken.parse(accessToken); JSONObject obj = jwt.getJsonPayload(); - user.setId(getValue(obj, "employeeNumber")); - user.setFirstName(getValue(obj, "displayNamePrintable")); - user.setLastName(getValue(obj, "Sn")); - user.setEmail(getValue(obj, "mail")); - user.setInstitutionalUserIdentifier(getValue(obj, "SAMAccountName")); + user.setId(getValue(obj, idAttributeName)); + user.setFirstName(getValue(obj, firstNameAttributeName)); + user.setLastName(getValue(obj, lastNameAttributeName)); + user.setEmail(getValue(obj, emailAttributeName)); + user.setInstitutionalUserIdentifier(getValue(obj, institutionalUserIdentifierAttributeName)); if(!StringHelper.containsNonWhitespace(user.getId())) { user.setId(user.getInstitutionalUserIdentifier()); } - } catch (JSONException e) { log.error("", e); } -- GitLab