fix #1691 remove netbios name

This commit is contained in:
Shinsuke Sugaya 2018-06-07 17:43:43 +09:00
parent d14505c4c6
commit 9234bcc922
3 changed files with 16 additions and 18 deletions

View file

@ -57,6 +57,6 @@ public class SambaHelper {
}
protected String createSearchRole(final int type, final String name) {
return type + name;
return type + fessConfig.getCanonicalLdapName(name);
}
}

View file

@ -18,7 +18,6 @@ package org.codelibs.fess.ldap;
import static org.codelibs.core.stream.StreamUtil.stream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.Collections;
import java.util.Hashtable;
@ -247,22 +246,7 @@ public class LdapManager {
} else {
name = entryDn.substring(start, end);
}
if (fessConfig.isLdapIgnoreNetbiosName()) {
final String[] values = name.split("\\\\");
if (values.length == 0) {
return null;
} else if (values.length == 1) {
if (logger.isDebugEnabled()) {
logger.debug("name(1): " + values[0]);
}
return values[0];
}
name = String.join("\\", Arrays.copyOfRange(values, 1, values.length));
if (logger.isDebugEnabled()) {
logger.debug("name(2): " + name);
}
return name;
}
name = fessConfig.getCanonicalLdapName(name);
if (logger.isDebugEnabled()) {
logger.debug("name: " + name);
}

View file

@ -1817,4 +1817,18 @@ public interface FessProp {
stream -> stream.filter(StringUtil::isNotBlank).map(String::trim).toArray(n -> new String[n]));
}
boolean isLdapIgnoreNetbiosName();
public default String getCanonicalLdapName(final String name) {
if (isLdapIgnoreNetbiosName()) {
final String[] values = name.split("\\\\");
if (values.length == 0) {
return null;
} else if (values.length == 1) {
return values[0];
}
return String.join("\\", Arrays.copyOfRange(values, 1, values.length));
}
return name;
}
}