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 08959b4b62edd64e2b7b240a9ab30a705dd5afeb..2f008a978c104b768b373b5760536cfaebdbd206 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 @@ -31,8 +31,13 @@ public class AuthenticationService { public boolean authenticateUser(String username, String 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); + 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/authentication-module/src/main/java/net/jami/jams/authmodule/TokenController.java b/authentication-module/src/main/java/net/jami/jams/authmodule/TokenController.java index d2560b46aca4bbd0eacae30ff58594f5cbe3f2b0..c28936f8dc74a74e505d5e726e199c0c2f4f5186 100644 --- a/authentication-module/src/main/java/net/jami/jams/authmodule/TokenController.java +++ b/authentication-module/src/main/java/net/jami/jams/authmodule/TokenController.java @@ -47,7 +47,7 @@ public class TokenController{ public AuthTokenResponse getToken(User user, AuthScope authScope) { AuthTokenResponse authTokenResponse = new AuthTokenResponse(); JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.RS256).type(JOSEObjectType.JWT).build(); - JWTClaimsSet.Builder builder = new JWTClaimsSet.Builder() + JWTClaimsSet.Builder builder = new JWTClaimsSet.Builder() .issuer("JAMS") .subject(user.getUsername()) .audience("JAMS") 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 f8bdca567cb967ae3574a69856ff07eb6baf4614..e7a5e8583df67e5b03410b2302eb0db3fbe90e86 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 @@ -74,6 +74,14 @@ public class SearchDirectoryServlet extends HttpServlet { UserProfile[] profiles = v.getUserProfile(req.getParameter("queryString"),"FULL_TEXT_NAME"); if(profiles != null && profiles.length != 0) userProfiles.addAll(Arrays.asList(profiles)); }); + + // check logon names if nothing was found + if (userProfiles.isEmpty()) { + userAuthenticationModule.getAuthSources().forEach( (k,v) ->{ + UserProfile[] profiles = v.getUserProfile(req.getParameter("queryString"),"LOGON_NAME"); + if(profiles != null && profiles.length != 0) userProfiles.addAll(Arrays.asList(profiles)); + }); + } resp.getOutputStream().write(JsonStream.serialize(userProfiles).getBytes()); } }