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 af5c998c8f43da1d8f2fb1e698edb2a4f7e48994..df800f55477f462dbc6c344fa8942a95299e6734 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
@@ -1,25 +1,26 @@
 /*
-* Copyright (C) 2020 by Savoir-faire Linux
-* Authors: William Enright <william.enright@savoirfairelinux.com>
-*          Ndeye Anna Ndiaye <anna.ndiaye@savoirfairelinux.com>
-*          Johnny Flores <johnny.flores@savoirfairelinux.com>
-*          Mohammed Raza <mohammed.raza@savoirfairelinux.com>
-*          Felix Sidokhine <felix.sidokhine@savoirfairelinux.com>
-*
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
-*/
+ * Copyright (C) 2020 by Savoir-faire Linux
+ * Authors: William Enright <william.enright@savoirfairelinux.com>
+ *          Ndeye Anna Ndiaye <anna.ndiaye@savoirfairelinux.com>
+ *          Johnny Flores <johnny.flores@savoirfairelinux.com>
+ *          Mohammed Raza <mohammed.raza@savoirfairelinux.com>
+ *          Felix Sidokhine <felix.sidokhine@savoirfairelinux.com>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
 package net.jami.jams.ad.connector;
 
 import com.imperva.ddc.core.query.Endpoint;
@@ -47,8 +48,8 @@ public class ADConnector implements AuthenticationSource {
 
     public ADConnector(String settings) {
         JsoniterRegistry.initCodecs();
-        ADConnector.settings = JsonIterator.deserialize(settings,ActiveDirectorySettings.class);
-        for(int i=0; i<10;i++){
+        ADConnector.settings = JsonIterator.deserialize(settings, ActiveDirectorySettings.class);
+        for (int i = 0; i < 10; i++) {
             Endpoint endpoint = new Endpoint();
             endpoint.setSecuredConnection(ADConnector.settings.getIsSSL());
             endpoint.setPort(ADConnector.settings.getPort());
@@ -59,19 +60,19 @@ public class ADConnector implements AuthenticationSource {
         log.info("Started Active Directory Connector!");
     }
 
-    public static Endpoint getConnection(){
+    public static Endpoint getConnection() {
         Endpoint endpoint = null;
-        while(endpoint == null){
+        while (endpoint == null) {
             endpoint = endpoints.poll();
         }
-        endpoint.setUserAccountName(settings.getUsername()); //* You can use the user's Distinguished Name as well
+        endpoint.setUserAccountName(ADConnector.settings.getRealm() + "\\" + settings.getUsername()); //* You can use the user's Distinguished Name as well
         endpoint.setPassword(settings.getPassword());
         return endpoint;
     }
 
-    public static Endpoint getConnection(String username, String password){
+    public static Endpoint getConnection(String username, String password) {
         Endpoint endpoint = null;
-        while(endpoint == null){
+        while (endpoint == null) {
             endpoint = endpoints.poll();
         }
         endpoint.setUserAccountName(ADConnector.settings.getRealm() + "\\" + username); //* You can use the user's Distinguished Name as well
@@ -79,13 +80,12 @@ public class ADConnector implements AuthenticationSource {
         return endpoint;
     }
 
-    public static void returnConnection(Endpoint connection){
-        connection.setUserAccountName(settings.getUsername());
+    public static void returnConnection(Endpoint connection) {
+        connection.setUserAccountName(ADConnector.settings.getRealm() + "\\" + settings.getUsername());
         connection.setPassword(settings.getPassword());
         endpoints.add(connection);
     }
 
-
     @Override
     public boolean createUser(User user) {
         return false;
@@ -93,7 +93,7 @@ public class ADConnector implements AuthenticationSource {
 
     @Override
     public UserProfile[] getUserProfile(String queryString, String field) {
-        return userProfileService.getUserProfile(queryString,field);
+        return userProfileService.getUserProfile(queryString, field);
     }
 
     @Override
@@ -105,8 +105,7 @@ public class ADConnector implements AuthenticationSource {
     public boolean authenticate(String username, String password) {
         try {
             return authenticationService.authenticateUser(username, password);
-        }
-        catch (Exception e){
+        } catch (Exception e) {
             return false;
         }
     }
@@ -125,6 +124,4 @@ public class ADConnector implements AuthenticationSource {
     public boolean updatePassword(User user, String password) {
         return false;
     }
-
-
 }
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 2f008a978c104b768b373b5760536cfaebdbd206..1d7fda3e9841a521b9b629c418c365a61670e660 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
@@ -33,11 +33,6 @@ public class AuthenticationService {
 
         Endpoint endpoint = ADConnector.getConnection(username, password);
 
-        if (username.contains("cn=")) {
-            String marked_username = username.substring(username.indexOf("cn=") + 3, username.indexOf(",")); //ADConnector.settings.getRealm() + "\\" + ADConnector.settings.getUsername();
-            endpoint = ADConnector.getConnection(marked_username, password);
-        }
-
         try {
             ConnectionResponse connectionResponse = DirectoryConnectorService.authenticate(endpoint);
             return !connectionResponse.isError();
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 648fb437f25acdd0d690878cd16612b67d6fdb04..101d79a726544dd48a2ffe814197de9e53c73b2c 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
@@ -39,6 +39,8 @@ import lombok.extern.slf4j.Slf4j;
 import net.jami.jams.ad.connector.ADConnector;
 import net.jami.jams.common.objects.user.UserProfile;
 
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -55,14 +57,20 @@ public class UserProfileService {
         try{
             QueryRequest queryRequest = buildRequest(endpoint);
             Sentence sentence = null;
-            if(field.equals("LOGON_NAME")){
-                sentence = new QueryAssembler().addPhrase(FieldType.LOGON_NAME, PhraseOperator.CONTAINS, queryString)
-                        .closeSentence();
+            if(queryString.contains("*")) {
+                sentence = new QueryAssembler().addPhrase(FieldType.OBJECT_CLASS, PhraseOperator.EQUAL, ObjectType.USER.toString()).closeSentence();
             }
-            if(field.equals("FULL_TEXT_NAME")) {
-                sentence = new QueryAssembler().addPhrase(FieldType.FIRST_NAME, PhraseOperator.CONTAINS, queryString)
+            else {
+                if (field.equals("LOGON_NAME")) {
+
+                    sentence = new QueryAssembler().addPhrase(FieldType.LOGON_NAME, PhraseOperator.CONTAINS, queryString)
+                        .closeSentence();
+                }
+                if (field.equals("FULL_TEXT_NAME")) {
+                    sentence = new QueryAssembler().addPhrase(FieldType.FIRST_NAME, PhraseOperator.CONTAINS, queryString)
                         .addPhrase(FieldType.LAST_NAME, PhraseOperator.CONTAINS, queryString)
                         .closeSentence(SentenceOperator.OR);
+                }
             }
             queryRequest.addSearchSentence(sentence);
             QueryResponse queryResponse;
@@ -91,7 +99,7 @@ public class UserProfileService {
         QueryRequest queryRequest = new QueryRequest();
         queryRequest.setDirectoryType(DirectoryType.MS_ACTIVE_DIRECTORY);
         queryRequest.setEndpoints(new ArrayList<>() {{ add(endpoint);}});
-        queryRequest.setSizeLimit(1);
+        queryRequest.setSizeLimit(1000);
         queryRequest.setTimeLimit(1000);
         queryRequest.setObjectType(ObjectType.USER);
         for(String field : fieldMap.keySet()) queryRequest.addRequestedField(field);
diff --git a/jams-common/src/main/java/net/jami/jams/common/configuration/ServerConfiguration.java b/jams-common/src/main/java/net/jami/jams/common/configuration/ServerConfiguration.java
deleted file mode 100644
index ebdf151697198a527491b45d2f8fe055bc16b8ef..0000000000000000000000000000000000000000
--- a/jams-common/src/main/java/net/jami/jams/common/configuration/ServerConfiguration.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-* Copyright (C) 2020 by Savoir-faire Linux
-* Authors: William Enright <william.enright@savoirfairelinux.com>
-*          Ndeye Anna Ndiaye <anna.ndiaye@savoirfairelinux.com>
-*          Johnny Flores <johnny.flores@savoirfairelinux.com>
-*          Mohammed Raza <mohammed.raza@savoirfairelinux.com>
-*          Felix Sidokhine <felix.sidokhine@savoirfairelinux.com>
-*
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
-*/
-package net.jami.jams.common.configuration;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class ServerConfiguration {
-
-    private int port;
-
-}
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
index e7a5e8583df67e5b03410b2302eb0db3fbe90e86..01da9c32b669ba437837a280586dcffa648f063e 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
@@ -31,6 +31,8 @@ import jakarta.servlet.http.HttpServletResponse;
 import net.jami.jams.common.objects.user.UserProfile;
 
 import java.io.IOException;
+import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java b/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java
index ab5d34c699c7336e548c0ebacc5fe342dd88d346..131bd085b6528794cadd2004a83d8a519bc5063a 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/filters/ApiFilter.java
@@ -99,7 +99,7 @@ public class ApiFilter implements Filter {
             if (authsuccess || isLogin) {
                 filterChain.doFilter(servletRequest, servletResponse);
             } else {
-                response.sendError(403, "This endpoint requires setup to be complete!");
+                response.sendError(403, "Your credentials are invalid!");
             }
         }
     }