diff --git a/ad-connector/src/main/java/net/jami/jams/ad/connector/ADConnector.java b/ad-connector/src/main/java/net/jami/jams/ad/connector/ADConnector.java index 29df5c557b8d74f506c4001ba11cf4e036f6555a..2be71eb96875ba2d4e0af1f650e33343e338120b 100644 --- a/ad-connector/src/main/java/net/jami/jams/ad/connector/ADConnector.java +++ b/ad-connector/src/main/java/net/jami/jams/ad/connector/ADConnector.java @@ -19,7 +19,7 @@ import java.util.concurrent.ConcurrentLinkedQueue; public class ADConnector implements AuthenticationSource { private static final ConcurrentLinkedQueue<Endpoint> endpoints = new ConcurrentLinkedQueue<>(); - private static ActiveDirectorySettings settings; + public static ActiveDirectorySettings settings; private final AuthenticationService authenticationService = new AuthenticationService(); private final UserProfileService userProfileService = new UserProfileService(); diff --git a/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java b/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java index 1bac115c9f81d5aa4f05b1a3a1324522eae96586..ee7e1ba98197644a16b7c01243e0d63211e7fc33 100644 --- a/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java +++ b/ad-connector/src/main/java/net/jami/jams/ad/connector/service/UserProfileService.java @@ -18,19 +18,7 @@ import java.util.stream.Collectors; @Slf4j public class UserProfileService { - private static final HashMap<String,String> fieldMap = new HashMap<>(); - - static{ - fieldMap.put("givenname","FirstName"); - fieldMap.put("sn","LastName"); - fieldMap.put("thumbnailPhoto","ProfilePicture"); - fieldMap.put("mail","Email"); - fieldMap.put("telephoneNumber","PhoneNumber"); - fieldMap.put("mobile","MobileNumber"); - fieldMap.put("facsimileTelephoneNumber","FaxNumber"); - fieldMap.put("extensionName","PhoneNumberExtension"); - fieldMap.put("o","Organization"); - } + private static final HashMap<String,String> fieldMap = ADConnector.settings.getFieldMappings(); public UserProfile[] getUserProfile(String queryString, String field){ Endpoint endpoint = ADConnector.getConnection(); diff --git a/jams-common/src/main/java/net/jami/jams/common/authentication/activedirectory/ActiveDirectorySettings.java b/jams-common/src/main/java/net/jami/jams/common/authentication/activedirectory/ActiveDirectorySettings.java index 55e262bab892c3efd109c1ed020456e4eb28727c..bf1303d3da54427baf7e640b441c71b0a6cb7c99 100644 --- a/jams-common/src/main/java/net/jami/jams/common/authentication/activedirectory/ActiveDirectorySettings.java +++ b/jams-common/src/main/java/net/jami/jams/common/authentication/activedirectory/ActiveDirectorySettings.java @@ -3,13 +3,18 @@ package net.jami.jams.common.authentication.activedirectory; import lombok.Getter; import lombok.Setter; +import java.util.HashMap; + @Getter @Setter public class ActiveDirectorySettings { + private Boolean ssl; private int port; private String realm; private String host; private String username; private String password; + private HashMap<String,String> fieldMappings; + } diff --git a/jams-common/src/main/java/net/jami/jams/common/authentication/ldap/LDAPSettings.java b/jams-common/src/main/java/net/jami/jams/common/authentication/ldap/LDAPSettings.java index f4fd0fc4be7362bc8b5eac67bbea5454497471c7..b4408782854e38a6daa49f11081be06ad4765406 100644 --- a/jams-common/src/main/java/net/jami/jams/common/authentication/ldap/LDAPSettings.java +++ b/jams-common/src/main/java/net/jami/jams/common/authentication/ldap/LDAPSettings.java @@ -3,6 +3,8 @@ package net.jami.jams.common.authentication.ldap; import lombok.Getter; import lombok.Setter; +import java.util.HashMap; + @Getter @Setter public class LDAPSettings { @@ -14,5 +16,6 @@ public class LDAPSettings { private String username; private String password; private String usernameField; + private HashMap<String,String> fieldMappings; } diff --git a/jams-server/src/main/resources/adsampleconfig.json b/jams-server/src/main/resources/adsampleconfig.json index b6ca19bf6ac4f71c81c32a4f0c63b02fa1ce028f..bbb28b998305199ef494fabe20c75ca73667dea4 100644 --- a/jams-server/src/main/resources/adsampleconfig.json +++ b/jams-server/src/main/resources/adsampleconfig.json @@ -1,10 +1,21 @@ { - "ssl": false, - "port" : 389, - "realm": "SAVOIRFAIRELINU", - "host": "192.168.49.151", - "username": "cn=Administrator,cn=Users,dc=savoirfairelinux,dc=net", - "password": "abc123!" + "ssl": false, + "port": 389, + "realm": "SAVOIRFAIRELINU", + "host": "192.168.49.151", + "username": "cn=Administrator,cn=Users,dc=savoirfairelinux,dc=net", + "password": "abc123!", + "fieldMappings": { + "givenname": "FirstName", + "sn": "LastName", + "thumbnailPhoto": "ProfilePicture", + "mail": "Email", + "telephoneNumber": "PhoneNumber", + "mobile": "MobileNumber", + "facsimileTelephoneNumber": "FaxNumber", + "extensionName": "PhoneNumberExtension", + "o": "Organization" + } } diff --git a/jams-server/src/main/resources/ldapconfig.json b/jams-server/src/main/resources/ldapconfig.json index 54a125b26f823a186fb604d04ed092627108cbf1..18c12f0ba4eea98cb2315cd59086322780f048a7 100644 --- a/jams-server/src/main/resources/ldapconfig.json +++ b/jams-server/src/main/resources/ldapconfig.json @@ -5,5 +5,16 @@ "host": "ldap://annuaire.savoirfairelinux.com", "username": "cn=sipallow,ou=dsa,dc=savoirfairelinux,dc=net", "password": "Dewaaghei3Yo", - "usernameField": "uid" + "usernameField": "uid", + "fieldMappings": { + "givenName":"FirstName", + "sn":"LastName", + "jpegPhoto":"ProfilePicture", + "mail":"Email", + "telephoneNumber":"PhoneNumber", + "mobile":"MobileNumber", + "facsimileTelephoneNumber":"FaxNumber", + "extensionName":"PhoneNumberExtension", + "o":"Organization" + } } \ No newline at end of file diff --git a/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java b/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java index 95c2e0438644b597b4a26ad60670886559598066..68e7ebe87c613646a0093eff2f55d7ccbee8f056 100644 --- a/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java +++ b/ldap-connector/src/main/java/net/jami/jams/ldap/connector/service/UserProfileService.java @@ -14,21 +14,9 @@ import java.util.Iterator; @Slf4j public class UserProfileService { - private static final HashMap<String,String> fieldMap = new HashMap<>(); + private static final HashMap<String,String> fieldMap = LDAPConnector.settings.getFieldMappings(); private final ConnectionFactory connectionFactory; - static{ - fieldMap.put("givenName","FirstName"); - fieldMap.put("sn","LastName"); - fieldMap.put("jpegPhoto","ProfilePicture"); - fieldMap.put("mail","Email"); - fieldMap.put("telephoneNumber","PhoneNumber"); - fieldMap.put("mobile","MobileNumber"); - fieldMap.put("facsimileTelephoneNumber","FaxNumber"); - fieldMap.put("extensionName","PhoneNumberExtension"); - fieldMap.put("o","Organization"); - } - public UserProfileService(ConnectionFactory connectionFactory) { this.connectionFactory = connectionFactory; }