diff --git a/src/main/java/hudson/plugins/active_directory/ActiveDirectorySecurityRealm.java b/src/main/java/hudson/plugins/active_directory/ActiveDirectorySecurityRealm.java index 4cc6ff97..e6eb8fa8 100644 --- a/src/main/java/hudson/plugins/active_directory/ActiveDirectorySecurityRealm.java +++ b/src/main/java/hudson/plugins/active_directory/ActiveDirectorySecurityRealm.java @@ -71,6 +71,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -550,6 +551,10 @@ public List obtainLDAPServer(String domainName, String site, String // see http://technet.microsoft.com/en-us/library/cc759550(WS.10).aspx private static final List CANDIDATES = Arrays.asList("_gc._tcp.", "_ldap._tcp."); + private boolean serverIsInDomain(String serverToken, String domainName) { + return serverToken.split(":")[0].endsWith(domainName); + } + /** * Use DNS and obtains the LDAP servers that we should try. * @@ -570,7 +575,8 @@ public List obtainLDAPServer(DirContext ictx, String domainName, Str if (preferredServers!=null) { for (String token : preferredServers.split(",")) { - result.add(new SocketInfo(token.trim())); + if (serverIsInDomain(token, domainName)) + result.add(new SocketInfo(token.trim())); } return result; }