Browse Source

fix #1691 remove netbios name

Shinsuke Sugaya 7 years ago
parent
commit
9234bcc922

+ 1 - 1
src/main/java/org/codelibs/fess/helper/SambaHelper.java

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

+ 1 - 17
src/main/java/org/codelibs/fess/ldap/LdapManager.java

@@ -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);
         }

+ 14 - 0
src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java

@@ -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;
+    }
 }