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