diff --git a/src/main/java/org/codelibs/fess/helper/SystemHelper.java b/src/main/java/org/codelibs/fess/helper/SystemHelper.java
index 94e852bf48ff73409451a76692089071e78b73fd..9ee257166dc138006f615eafcde78eea2b1a0c93 100644
--- a/src/main/java/org/codelibs/fess/helper/SystemHelper.java
+++ b/src/main/java/org/codelibs/fess/helper/SystemHelper.java
@@ -376,7 +376,11 @@ public class SystemHelper {
}
protected String createSearchRole(final String type, final String name) {
- return type + name;
+ final String value = type + ComponentUtil.getFessConfig().getCanonicalLdapName(name);
+ if (logger.isDebugEnabled()) {
+ logger.debug("Search Role: " + type + ":" + name + "=" + value);
+ }
+ return value;
}
public void reloadConfiguration() {
diff --git a/src/main/java/org/codelibs/fess/ldap/LdapManager.java b/src/main/java/org/codelibs/fess/ldap/LdapManager.java
index 3b0a46ebd13d651948ad8ccff6ce0d413f38f5af..029d592922123dc6af1458a793dd74392e4c3305 100644
--- a/src/main/java/org/codelibs/fess/ldap/LdapManager.java
+++ b/src/main/java/org/codelibs/fess/ldap/LdapManager.java
@@ -240,17 +240,11 @@ public class LdapManager {
start += 3;
int end = entryDn.indexOf(',', start);
- String name;
if (end == -1) {
- name = entryDn.substring(start);
+ return entryDn.substring(start);
} else {
- name = entryDn.substring(start, end);
+ return entryDn.substring(start, end);
}
- name = fessConfig.getCanonicalLdapName(name);
- if (logger.isDebugEnabled()) {
- logger.debug("name: " + name);
- }
- return name;
}
protected void setAttributeValue(final List<SearchResult> result, final String name, final Consumer<Object> consumer) {
diff --git a/src/test/java/org/codelibs/fess/helper/PermissionHelperTest.java b/src/test/java/org/codelibs/fess/helper/PermissionHelperTest.java
index 53ecc8d697c1d75677bee9bdf8247a975f0ce57f..6a07dd9be8fa4f75609330e1dac328a3ad7b676b 100644
--- a/src/test/java/org/codelibs/fess/helper/PermissionHelperTest.java
+++ b/src/test/java/org/codelibs/fess/helper/PermissionHelperTest.java
@@ -65,6 +65,11 @@ public class PermissionHelperTest extends UnitFessTestCase {
public String getRoleSearchRolePrefix() {
return "";
}
+
+ @Override
+ public boolean isLdapIgnoreNetbiosName() {
+ return true;
+ }
});
try {
assertEquals("guest", permissionHelper.encode("{role}guest"));
diff --git a/src/test/java/org/codelibs/fess/helper/SystemHelperTest.java b/src/test/java/org/codelibs/fess/helper/SystemHelperTest.java
index afbbf7ec797eded502fec6c2a2dc11c7446523cd..c6d011d2539b96f0ee05e226eb173a5c298049bb 100644
--- a/src/test/java/org/codelibs/fess/helper/SystemHelperTest.java
+++ b/src/test/java/org/codelibs/fess/helper/SystemHelperTest.java
@@ -15,7 +15,9 @@
*/
package org.codelibs.fess.helper;
+import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.unit.UnitFessTestCase;
+import org.codelibs.fess.util.ComponentUtil;
public class SystemHelperTest extends UnitFessTestCase {
@@ -87,4 +89,19 @@ public class SystemHelperTest extends UnitFessTestCase {
assertEquals("zh_TW", systemHelper.normalizeLang(value));
}
+ public void test_createSearchRole() {
+ ComponentUtil.setFessConfig(new FessConfig.SimpleImpl() {
+ private static final long serialVersionUID = 1L;
+
+ public boolean isLdapIgnoreNetbiosName() {
+ return true;
+ }
+ });
+
+ assertEquals("", systemHelper.createSearchRole("", ""));
+ assertEquals("aaa", systemHelper.createSearchRole("", "aaa"));
+ assertEquals("bbb", systemHelper.createSearchRole("", "aaa\\bbb"));
+ assertEquals("bbb\\ccc", systemHelper.createSearchRole("", "aaa\\bbb\\ccc"));
+ }
+
}
diff --git a/src/test/java/org/codelibs/fess/ldap/LdapManagerTest.java b/src/test/java/org/codelibs/fess/ldap/LdapManagerTest.java
index 61a927aa0c7d72216fe182926469a0be51aa3bf5..189f5a37ed44605a1a0ddbaf4ceb57389b0c2451 100644
--- a/src/test/java/org/codelibs/fess/ldap/LdapManagerTest.java
+++ b/src/test/java/org/codelibs/fess/ldap/LdapManagerTest.java
@@ -34,10 +34,10 @@ public class LdapManagerTest extends UnitFessTestCase {
assertEquals("aaa", ldapManager.getSearchRoleName("cn=aaa"));
assertEquals("aaa", ldapManager.getSearchRoleName("CN=aaa"));
assertEquals("aaa", ldapManager.getSearchRoleName("cn=aaa,du=test"));
- assertEquals("bbb", ldapManager.getSearchRoleName("cn=aaa\\bbb"));
- assertEquals("bbb", ldapManager.getSearchRoleName("cn=aaa\\bbb,du=test"));
- assertEquals("bbb\\ccc", ldapManager.getSearchRoleName("cn=aaa\\bbb\\ccc"));
- assertEquals("bbb\\ccc", ldapManager.getSearchRoleName("cn=aaa\\bbb\\ccc,du=test\""));
+ assertEquals("aaa\\bbb", ldapManager.getSearchRoleName("cn=aaa\\bbb"));
+ assertEquals("aaa\\bbb", ldapManager.getSearchRoleName("cn=aaa\\bbb,du=test"));
+ assertEquals("aaa\\bbb\\ccc", ldapManager.getSearchRoleName("cn=aaa\\bbb\\ccc"));
+ assertEquals("aaa\\bbb\\ccc", ldapManager.getSearchRoleName("cn=aaa\\bbb\\ccc,du=test\""));
assertNull(ldapManager.getSearchRoleName(null));
assertNull(ldapManager.getSearchRoleName(""));