fix #1704 remove netbios name

This commit is contained in:
Shinsuke Sugaya 2018-06-11 23:03:22 +09:00
parent cd16bf831c
commit 5b1652da0a
5 changed files with 33 additions and 13 deletions

View file

@ -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() {

View file

@ -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) {

View file

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

View file

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

View file

@ -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(""));