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 10485f16f577c465c71eec7d2873a987dc0c4f7b..af5c998c8f43da1d8f2fb1e698edb2a4f7e48994 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 44fd338ec359948fec34aefc4efa6c22aed89c1c..08959b4b62edd64e2b7b240a9ab30a705dd5afeb 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 1773896e2099773183e4a4ba77ae90bd9d263454..7612bee7b1263b19eca032594b30e4d938c5af7c 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 7416c09cd978ad85439d4b0017a7e53ad8e2aa87..7eb090b03d595a4294199a427b96f2fb5646ca51 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;