From 79882b206765dc73361e5ab123f4c6e654113204 Mon Sep 17 00:00:00 2001
From: William Enright <william.enright@savoirfairelinux.com>
Date: Tue, 9 Jun 2020 13:05:08 -0400
Subject: [PATCH] fixed AD setup

Change-Id: I116f627c7ad1d04fe7be8c921f087358947c7b96
---
 .../java/net/jami/jams/ad/connector/ADConnector.java |  5 +++--
 .../ad/connector/service/AuthenticationService.java  |  4 +++-
 .../activedirectory/ActiveDirectorySettings.java     |  2 +-
 .../main/resources/webapp/js/identity-management.js  | 12 ++++++++++++
 4 files changed, 19 insertions(+), 4 deletions(-)

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 10485f16..af5c998c 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
@@ -43,18 +43,19 @@ public class ADConnector implements AuthenticationSource {
     private static final ConcurrentLinkedQueue<Endpoint> endpoints = new ConcurrentLinkedQueue<>();
     public static ActiveDirectorySettings settings;
     private final AuthenticationService authenticationService = new AuthenticationService();
-    private final UserProfileService userProfileService = new UserProfileService();
+    private final UserProfileService userProfileService;
 
     public ADConnector(String settings) {
         JsoniterRegistry.initCodecs();
         ADConnector.settings = JsonIterator.deserialize(settings,ActiveDirectorySettings.class);
         for(int i=0; i<10;i++){
             Endpoint endpoint = new Endpoint();
-            endpoint.setSecuredConnection(ADConnector.settings.getSsl());
+            endpoint.setSecuredConnection(ADConnector.settings.getIsSSL());
             endpoint.setPort(ADConnector.settings.getPort());
             endpoint.setHost(ADConnector.settings.getHost());
             endpoints.add(endpoint);
         }
+        userProfileService = new UserProfileService();
         log.info("Started Active Directory Connector!");
     }
 
diff --git a/ad-connector/src/main/java/net/jami/jams/ad/connector/service/AuthenticationService.java b/ad-connector/src/main/java/net/jami/jams/ad/connector/service/AuthenticationService.java
index 44fd338e..08959b4b 100644
--- a/ad-connector/src/main/java/net/jami/jams/ad/connector/service/AuthenticationService.java
+++ b/ad-connector/src/main/java/net/jami/jams/ad/connector/service/AuthenticationService.java
@@ -30,7 +30,9 @@ import net.jami.jams.ad.connector.ADConnector;
 public class AuthenticationService {
 
     public boolean authenticateUser(String username, String password) {
-        Endpoint endpoint = ADConnector.getConnection(username, password);
+
+        String marked_username = username.substring(username.indexOf("cn=") + 3, username.indexOf(",")); //ADConnector.settings.getRealm() + "\\" + ADConnector.settings.getUsername();
+        Endpoint endpoint = ADConnector.getConnection(marked_username, password);
         try {
             ConnectionResponse connectionResponse = DirectoryConnectorService.authenticate(endpoint);
             return !connectionResponse.isError();
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 1773896e..7612bee7 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
@@ -31,7 +31,7 @@ import java.util.HashMap;
 @Setter
 public class ActiveDirectorySettings {
 
-    private Boolean ssl;
+    private Boolean isSSL;
     private int     port;
     private String  realm;
     private String  host;
diff --git a/jams-server/src/main/resources/webapp/js/identity-management.js b/jams-server/src/main/resources/webapp/js/identity-management.js
index 7416c09c..7eb090b0 100644
--- a/jams-server/src/main/resources/webapp/js/identity-management.js
+++ b/jams-server/src/main/resources/webapp/js/identity-management.js
@@ -93,6 +93,18 @@ function setADParametersData(form) {
             settings[field.name] = field.value;
     });
 
+    settings['fieldMappings'] = {};
+    settings['fieldMappings']['givenName'] = "FirstName";
+    settings['fieldMappings']['sn'] = "LastName";
+    settings['fieldMappings']['jpegPhoto'] = "ProfilePicture";
+    settings['fieldMappings']['mail'] = "Email";
+    settings['fieldMappings']['telephoneNumber'] = "PhoneNumber";
+    settings['fieldMappings']['mobile'] = "MobileNumber";
+    settings['fieldMappings']['facsimileTelephoneNumber'] = "FaxNumber";
+    settings['fieldMappings']['extensionName'] = "PhoneNumberExtension";
+    settings['fieldMappings']['o'] = "Organization";
+    settings['fieldMappings']['uid'] = "Username";
+
     authSource['type'] = 'AD';
     authSource['activeDirectorySettings'] = settings;
     var data = authSource;
-- 
GitLab