add ldap support and minor fixes
This commit is contained in:
parent
f4819bce47
commit
bb3311ddd5
23 changed files with 276 additions and 30 deletions
2
pom.xml
2
pom.xml
|
@ -41,7 +41,7 @@
|
|||
|
||||
<!-- Main Framework -->
|
||||
<dbflute.version>1.1.0-sp9</dbflute.version>
|
||||
<lastaflute.version>0.7.1</lastaflute.version>
|
||||
<lastaflute.version>0.7.2</lastaflute.version>
|
||||
<lasta.taglib.version>0.6.6</lasta.taglib.version>
|
||||
<servlet.version>3.1.0</servlet.version>
|
||||
<jsp.version>2.3.1</jsp.version>
|
||||
|
|
|
@ -358,4 +358,12 @@ public class Constants extends CoreLibConstants {
|
|||
public static final String FESS_CONF_PATH = "fess.conf.path";
|
||||
|
||||
public static final TimeZone TIMEZONE_UTC = TimeZone.getTimeZone("UTC");
|
||||
|
||||
public static final String LDAP_SECURITY_PRINCIPAL = "ldap.security.principal";
|
||||
|
||||
public static final String LDAP_PROVIDER_URL = "ldap.provider.url";
|
||||
|
||||
public static final String LDAP_SECURITY_AUTHENTICATION = "ldap.security.authentication";
|
||||
|
||||
public static final String LDAP_INITIAL_CONTEXT_FACTORY = "ldap.initial.context.factory";
|
||||
}
|
||||
|
|
|
@ -160,6 +160,8 @@ public class AdminGeneralAction extends FessAdminAction {
|
|||
updateProperty(Constants.SUGGEST_DOCUMENTS_PROPERTY,
|
||||
form.suggestDocuments != null && Constants.ON.equalsIgnoreCase(form.suggestDocuments) ? Constants.TRUE : Constants.FALSE);
|
||||
updateProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY, form.purgeSuggestSearchLogDay.toString());
|
||||
updateProperty(Constants.LDAP_PROVIDER_URL, form.ldapProviderUrl);
|
||||
updateProperty(Constants.LDAP_SECURITY_PRINCIPAL, form.ldapSecurityPrincipal);
|
||||
|
||||
crawlerProperties.store();
|
||||
saveInfo(messages -> messages.addSuccessUpdateCrawlerParams(GLOBAL));
|
||||
|
@ -195,6 +197,8 @@ public class AdminGeneralAction extends FessAdminAction {
|
|||
form.purgeSuggestSearchLogDay =
|
||||
Integer.parseInt(crawlerProperties.getProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY,
|
||||
Constants.DEFAULT_SUGGEST_PURGE_DAY));
|
||||
form.ldapProviderUrl = crawlerProperties.getProperty(Constants.LDAP_PROVIDER_URL, StringUtil.EMPTY);
|
||||
form.ldapSecurityPrincipal = crawlerProperties.getProperty(Constants.LDAP_SECURITY_PRINCIPAL, StringUtil.EMPTY);
|
||||
}
|
||||
|
||||
private void updateProperty(final String key, final String value) {
|
||||
|
|
|
@ -116,4 +116,9 @@ public class EditForm implements Serializable {
|
|||
@ValidateTypeFailure
|
||||
public Integer purgeSuggestSearchLogDay;
|
||||
|
||||
@Size(max = 1000)
|
||||
public String ldapProviderUrl;
|
||||
|
||||
@Size(max = 1000)
|
||||
public String ldapSecurityPrincipal;
|
||||
}
|
||||
|
|
|
@ -193,6 +193,5 @@ public abstract class FessSearchAction extends FessBaseAction {
|
|||
protected HtmlResponse redirectToRoot() {
|
||||
final String contextPath = request.getServletContext().getContextPath();
|
||||
return newHtmlResponseAsRediect(StringUtil.isBlank(contextPath) ? "/" : contextPath);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import org.codelibs.fess.es.user.exentity.User;
|
|||
import org.codelibs.fess.exception.UserRoleLoginException;
|
||||
import org.codelibs.fess.mylasta.action.FessUserBean;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.core.magic.async.AsyncManager;
|
||||
|
@ -65,6 +66,15 @@ public class FessLoginAssist extends TypicalLoginAssist<String, FessUserBean, Us
|
|||
}) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OptionalEntity<User> findLoginUser(String username, String password) {
|
||||
OptionalEntity<User> ldapUser = ComponentUtil.getLdapManager().login(username, password);
|
||||
if (ldapUser.isPresent()) {
|
||||
return ldapUser;
|
||||
}
|
||||
return doFindLoginUser(username, encryptPassword(password));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected OptionalEntity<User> doFindLoginUser(final String username, final String cipheredPassword) {
|
||||
return userBhv.selectEntity(cb -> {
|
||||
|
|
|
@ -17,6 +17,7 @@ package org.codelibs.fess.app.web.login;
|
|||
|
||||
import org.codelibs.fess.app.web.admin.dashboard.AdminDashboardAction;
|
||||
import org.codelibs.fess.app.web.base.FessSearchAction;
|
||||
import org.codelibs.fess.mylasta.action.FessUserBean;
|
||||
import org.lastaflute.web.Execute;
|
||||
import org.lastaflute.web.login.exception.LoginFailureException;
|
||||
import org.lastaflute.web.response.HtmlResponse;
|
||||
|
@ -44,10 +45,6 @@ public class LoginAction extends FessSearchAction {
|
|||
return getHtmlResponse().useForm(LoginForm.class);
|
||||
}
|
||||
|
||||
private HtmlResponse getHtmlResponse() {
|
||||
return getUserBean().map(user -> redirect(AdminDashboardAction.class)).orElse(asHtml(path_Login_IndexJsp));
|
||||
}
|
||||
|
||||
@Execute
|
||||
public HtmlResponse login(final LoginForm form) {
|
||||
validate(form, messages -> {}, () -> {
|
||||
|
@ -67,4 +64,15 @@ public class LoginAction extends FessSearchAction {
|
|||
return redirect(getClass());
|
||||
}
|
||||
|
||||
private HtmlResponse getHtmlResponse() {
|
||||
return getUserBean().map(user -> redirectByUser(user)).orElse(asHtml(path_Login_IndexJsp));
|
||||
}
|
||||
|
||||
private HtmlResponse redirectByUser(FessUserBean user) {
|
||||
if (!user.hasRoles(fessConfig.getAuthenticationAdminRoles().split(","))) {
|
||||
return redirectToRoot();
|
||||
}
|
||||
return redirect(AdminDashboardAction.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -38,6 +38,7 @@ import org.codelibs.fess.util.ComponentUtil;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
// TODO refactoring
|
||||
public class AdLoginInfoFilter implements Filter {
|
||||
private static final Logger logger = LoggerFactory.getLogger(AdLoginInfoFilter.class);
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ import javax.naming.directory.SearchResult;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
// TODO refactoring
|
||||
public class AdRoleHelper {
|
||||
private static final Logger logger = LoggerFactory.getLogger(AdRoleHelper.class);
|
||||
|
||||
|
|
71
src/main/java/org/codelibs/fess/ldap/LdapManager.java
Normal file
71
src/main/java/org/codelibs/fess/ldap/LdapManager.java
Normal file
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
* Copyright 2012-2015 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.ldap;
|
||||
|
||||
import java.util.Hashtable;
|
||||
|
||||
import javax.naming.Context;
|
||||
import javax.naming.NamingException;
|
||||
import javax.naming.directory.DirContext;
|
||||
import javax.naming.directory.InitialDirContext;
|
||||
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.es.user.exentity.User;
|
||||
import org.codelibs.fess.filter.AdLoginInfoFilter;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class LdapManager {
|
||||
private static final Logger logger = LoggerFactory.getLogger(AdLoginInfoFilter.class);
|
||||
|
||||
public OptionalEntity<User> login(String username, String password) {
|
||||
FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
String providerUrl = fessConfig.getLdapProviderUrl();
|
||||
|
||||
if (StringUtil.isBlank(providerUrl)) {
|
||||
return OptionalEntity.empty();
|
||||
}
|
||||
|
||||
DirContext ctx = null;
|
||||
try {
|
||||
Hashtable<String, String> env = new Hashtable<>();
|
||||
env.put(Context.INITIAL_CONTEXT_FACTORY, fessConfig.getLdapInitialContextFactory());
|
||||
env.put(Context.SECURITY_AUTHENTICATION, fessConfig.getLdapSecurityAuthentication());
|
||||
env.put(Context.PROVIDER_URL, providerUrl);
|
||||
env.put(Context.SECURITY_PRINCIPAL, fessConfig.getLdapSecurityPrincipal(username));
|
||||
env.put(Context.SECURITY_CREDENTIALS, password);
|
||||
ctx = new InitialDirContext(env);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Logged in.", ctx);
|
||||
}
|
||||
return OptionalEntity.of(new LdapUser(username));
|
||||
} catch (NamingException e) {
|
||||
logger.warn("Login failed.", e);
|
||||
} finally {
|
||||
if (ctx != null) {
|
||||
try {
|
||||
ctx.close();
|
||||
} catch (NamingException e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
return OptionalEntity.empty();
|
||||
}
|
||||
}
|
28
src/main/java/org/codelibs/fess/ldap/LdapUser.java
Normal file
28
src/main/java/org/codelibs/fess/ldap/LdapUser.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* Copyright 2012-2015 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.ldap;
|
||||
|
||||
import org.codelibs.fess.es.user.exentity.User;
|
||||
|
||||
public class LdapUser extends User {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public LdapUser(String username) {
|
||||
setId(username);
|
||||
}
|
||||
|
||||
}
|
|
@ -197,7 +197,7 @@ public class FessLabels extends ActionMessages {
|
|||
/** The key of the message: Failure Count */
|
||||
public static final String LABELS_FAILURE_COUNT_THRESHOLD = "{labels.failureCountThreshold}";
|
||||
|
||||
/** The key of the message: FS Config Name */
|
||||
/** The key of the message: File System Config Name */
|
||||
public static final String LABELS_FILE_CONFIG_NAME = "{labels.fileConfigName}";
|
||||
|
||||
/** The key of the message: File name */
|
||||
|
@ -425,6 +425,12 @@ public class FessLabels extends ActionMessages {
|
|||
/** The key of the message: Extended Query */
|
||||
public static final String LABELS_ex_q = "{labels.ex_q}";
|
||||
|
||||
/** The key of the message: LDAP URL */
|
||||
public static final String LABELS_LDAP_PROVIDER_URL = "{labels.ldapProviderUrl}";
|
||||
|
||||
/** The key of the message: LDAP Principal */
|
||||
public static final String LABELS_LDAP_SECURITY_PRINCIPAL = "{labels.ldapSecurityPrincipal}";
|
||||
|
||||
/** The key of the message: System */
|
||||
public static final String LABELS_menu_system = "{labels.menu_system}";
|
||||
|
||||
|
@ -1307,10 +1313,10 @@ public class FessLabels extends ActionMessages {
|
|||
/** The key of the message: Back */
|
||||
public static final String LABELS_design_button_back = "{labels.design_button_back}";
|
||||
|
||||
/** The key of the message: Data Crawling */
|
||||
/** The key of the message: Data Store Crawling */
|
||||
public static final String LABELS_data_crawling_configuration = "{labels.data_crawling_configuration}";
|
||||
|
||||
/** The key of the message: Data Crawling Configuration */
|
||||
/** The key of the message: Data Store Crawling Configuration */
|
||||
public static final String LABELS_data_crawling_title_details = "{labels.data_crawling_title_details}";
|
||||
|
||||
/** The key of the message: Handler Name */
|
||||
|
@ -1518,7 +1524,7 @@ public class FessLabels extends ActionMessages {
|
|||
/** The key of the message: Parameters */
|
||||
public static final String LABELS_file_auth_parameters = "{labels.file_auth_parameters}";
|
||||
|
||||
/** The key of the message: FS Config */
|
||||
/** The key of the message: File System Config */
|
||||
public static final String LABELS_file_auth_file_crawling_config = "{labels.file_auth_file_crawling_config}";
|
||||
|
||||
/** The key of the message: Samba */
|
||||
|
@ -1974,6 +1980,15 @@ public class FessLabels extends ActionMessages {
|
|||
/** The key of the message: Suggest */
|
||||
public static final String LABELS_general_menu_suggest = "{labels.general_menu_suggest}";
|
||||
|
||||
/** The key of the message: LDAP */
|
||||
public static final String LABELS_general_menu_ldap = "{labels.general_menu_ldap}";
|
||||
|
||||
/** The key of the message: LDAP URL */
|
||||
public static final String LABELS_ldap_provider_url = "{labels.ldap_provider_url}";
|
||||
|
||||
/** The key of the message: LDAP Principal */
|
||||
public static final String LABELS_ldap_security_principal = "{labels.ldap_security_principal}";
|
||||
|
||||
/** The key of the message: Send TestMail */
|
||||
public static final String LABELS_send_testmail = "{labels.send_testmail}";
|
||||
|
||||
|
|
|
@ -174,7 +174,7 @@ public interface FessConfig extends FessEnv {
|
|||
/** The key of the configuration. e.g. 1.3 */
|
||||
String QUERY_BOOST_CONTENT_LANG = "query.boost.content.lang";
|
||||
|
||||
/** The key of the configuration. e.g. false */
|
||||
/** The key of the configuration. e.g. true */
|
||||
String ACL_AS_ROLE = "acl.as.role";
|
||||
|
||||
/** The key of the configuration. e.g. admin */
|
||||
|
@ -775,7 +775,7 @@ public interface FessConfig extends FessEnv {
|
|||
|
||||
/**
|
||||
* Get the value for the key 'acl.as.role'. <br>
|
||||
* The value is, e.g. false <br>
|
||||
* The value is, e.g. true <br>
|
||||
* comment: acl
|
||||
* @return The value of found property. (NotNull: if not found, exception but basically no way)
|
||||
*/
|
||||
|
@ -783,7 +783,7 @@ public interface FessConfig extends FessEnv {
|
|||
|
||||
/**
|
||||
* Is the property for the key 'acl.as.role' true? <br>
|
||||
* The value is, e.g. false <br>
|
||||
* The value is, e.g. true <br>
|
||||
* comment: acl
|
||||
* @return The determination, true or false. (if not found, exception but basically no way)
|
||||
*/
|
||||
|
|
|
@ -21,7 +21,7 @@ import org.lastaflute.core.direction.exception.ConfigPropertyNotFoundException;
|
|||
/**
|
||||
* @author FreeGen
|
||||
*/
|
||||
public interface FessEnv {
|
||||
public interface FessEnv extends FessProp {
|
||||
|
||||
/** The key of the configuration. e.g. hot */
|
||||
String lasta_di_SMART_DEPLOY_MODE = "lasta_di.smart.deploy.mode";
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Copyright 2012-2015 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.mylasta.direction;
|
||||
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
|
||||
public interface FessProp {
|
||||
public default String getProperty(String key) {
|
||||
return ComponentUtil.getCrawlerProperties().getProperty(key);
|
||||
}
|
||||
|
||||
public default String getProperty(String key, String defaultValue) {
|
||||
return ComponentUtil.getCrawlerProperties().getProperty(key, defaultValue);
|
||||
}
|
||||
|
||||
public default String getLdapInitialContextFactory() {
|
||||
return getProperty(Constants.LDAP_INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
|
||||
}
|
||||
|
||||
public default String getLdapSecurityAuthentication() {
|
||||
return getProperty(Constants.LDAP_SECURITY_AUTHENTICATION, "simple");
|
||||
}
|
||||
|
||||
public default String getLdapProviderUrl() {
|
||||
return getProperty(Constants.LDAP_PROVIDER_URL);
|
||||
}
|
||||
|
||||
public default String getLdapSecurityPrincipal(String username) {
|
||||
return String.format(getProperty(Constants.LDAP_SECURITY_PRINCIPAL, StringUtil.EMPTY), username);
|
||||
}
|
||||
}
|
|
@ -47,12 +47,15 @@ import org.codelibs.fess.helper.UserInfoHelper;
|
|||
import org.codelibs.fess.helper.ViewHelper;
|
||||
import org.codelibs.fess.indexer.IndexUpdater;
|
||||
import org.codelibs.fess.job.JobExecutor;
|
||||
import org.codelibs.fess.ldap.LdapManager;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.lastaflute.core.message.MessageManager;
|
||||
import org.lastaflute.di.core.SingletonLaContainer;
|
||||
import org.lastaflute.di.core.factory.SingletonLaContainerFactory;
|
||||
|
||||
public final class ComponentUtil {
|
||||
private static final String LDAP_MANAGER = "ldapManager";
|
||||
|
||||
private static final String ROLE_QUERY_HELPER = "roleQueryHelper";
|
||||
|
||||
private static final String SUGGEST_HELPER = "suggestHelper";
|
||||
|
@ -278,6 +281,10 @@ public final class ComponentUtil {
|
|||
return SingletonLaContainer.getComponent(ROLE_QUERY_HELPER);
|
||||
}
|
||||
|
||||
public static LdapManager getLdapManager() {
|
||||
return SingletonLaContainer.getComponent(LDAP_MANAGER);
|
||||
}
|
||||
|
||||
public static boolean hasQueryHelper() {
|
||||
return SingletonLaContainerFactory.getContainer().hasComponentDef(QUERY_HELPER);
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<include path="lastaflute.xml"/>
|
||||
|
||||
<include path="fess.xml"/>
|
||||
<include path="fess_ad.xml"/>
|
||||
<include path="fess_ldap.xml"/>
|
||||
<include path="fess_api.xml"/>
|
||||
<include path="fess_dict.xml"/>
|
||||
<include path="fess_job.xml"/>
|
||||
|
|
|
@ -96,7 +96,7 @@ query.boost.content=1.0
|
|||
query.boost.content.lang=1.3
|
||||
|
||||
# acl
|
||||
acl.as.role=false
|
||||
acl.as.role=true
|
||||
|
||||
# ========================================================================================
|
||||
# Web
|
||||
|
|
|
@ -55,7 +55,7 @@ labels.errorLog=Error Log
|
|||
labels.errorName=Error Name
|
||||
labels.expiredTime=Expired
|
||||
labels.failureCountThreshold=Failure Count
|
||||
labels.fileConfigName=FS Config Name
|
||||
labels.fileConfigName=File System Config Name
|
||||
labels.fileName=File name
|
||||
labels.handlerName=Handler Name
|
||||
labels.handlerParameter=Parameters
|
||||
|
@ -133,6 +133,8 @@ labels.term=Term
|
|||
labels.searchParams=Search Parameters
|
||||
labels.fields=Fields
|
||||
labels.ex_q=Extended Query
|
||||
labels.ldapProviderUrl=LDAP URL
|
||||
labels.ldapSecurityPrincipal=LDAP Principal
|
||||
|
||||
labels.menu_system=System
|
||||
labels.menu_wizard=Wizard
|
||||
|
@ -431,8 +433,8 @@ labels.design_file_errorBadRequest=Error Page (BadRequest)
|
|||
labels.design_title_edit_content=Edit JSP File
|
||||
labels.design_button_update=Update
|
||||
labels.design_button_back=Back
|
||||
labels.data_crawling_configuration=Data Crawling
|
||||
labels.data_crawling_title_details=Data Crawling Configuration
|
||||
labels.data_crawling_configuration=Data\u3000Store Crawling
|
||||
labels.data_crawling_title_details=Data\u3000Store Crawling Configuration
|
||||
labels.handler_name=Handler Name
|
||||
labels.handler_parameter=Parameter
|
||||
labels.handler_script=Script
|
||||
|
@ -502,7 +504,7 @@ labels.file_auth_scheme=Scheme
|
|||
labels.file_auth_username=Username
|
||||
labels.file_auth_password=Password
|
||||
labels.file_auth_parameters=Parameters
|
||||
labels.file_auth_file_crawling_config=FS Config
|
||||
labels.file_auth_file_crawling_config=File System Config
|
||||
labels.file_auth_scheme_samba=Samba
|
||||
labels.pagination_page_guide_msg={0}/{1} ({2} items)
|
||||
labels.list_could_not_find_crud_table=No data.
|
||||
|
@ -654,4 +656,7 @@ labels.general_menu_system=System
|
|||
labels.general_menu_crawler=Crawler
|
||||
labels.general_menu_logging=Logging
|
||||
labels.general_menu_suggest=Suggest
|
||||
labels.general_menu_ldap=LDAP
|
||||
labels.ldap_provider_url=LDAP URL
|
||||
labels.ldap_security_principal=LDAP Principal
|
||||
labels.send_testmail=Send TestMail
|
||||
|
|
|
@ -55,7 +55,7 @@ labels.errorLog=Error Log
|
|||
labels.errorName=Error Name
|
||||
labels.expiredTime=Expired
|
||||
labels.failureCountThreshold=Failure Count
|
||||
labels.fileConfigName=FS Config Name
|
||||
labels.fileConfigName=File System Config Name
|
||||
labels.fileName=File name
|
||||
labels.handlerName=Handler Name
|
||||
labels.handlerParameter=Parameters
|
||||
|
@ -133,6 +133,8 @@ labels.term=Term
|
|||
labels.searchParams=Search Parameters
|
||||
labels.fields=Fields
|
||||
labels.ex_q=Extended Query
|
||||
labels.ldapProviderUrl=LDAP URL
|
||||
labels.ldapSecurityPrincipal=LDAP Principal
|
||||
|
||||
labels.menu_system=System
|
||||
labels.menu_wizard=Wizard
|
||||
|
@ -431,8 +433,8 @@ labels.design_file_errorBadRequest=Error Page (BadRequest)
|
|||
labels.design_title_edit_content=Edit JSP File
|
||||
labels.design_button_update=Update
|
||||
labels.design_button_back=Back
|
||||
labels.data_crawling_configuration=Data Crawling
|
||||
labels.data_crawling_title_details=Data Crawling Configuration
|
||||
labels.data_crawling_configuration=Data\u3000Store Crawling
|
||||
labels.data_crawling_title_details=Data\u3000Store Crawling Configuration
|
||||
labels.handler_name=Handler Name
|
||||
labels.handler_parameter=Parameter
|
||||
labels.handler_script=Script
|
||||
|
@ -502,7 +504,7 @@ labels.file_auth_scheme=Scheme
|
|||
labels.file_auth_username=Username
|
||||
labels.file_auth_password=Password
|
||||
labels.file_auth_parameters=Parameters
|
||||
labels.file_auth_file_crawling_config=FS Config
|
||||
labels.file_auth_file_crawling_config=File System Config
|
||||
labels.file_auth_scheme_samba=Samba
|
||||
labels.pagination_page_guide_msg={0}/{1} ({2} items)
|
||||
labels.list_could_not_find_crud_table=No data.
|
||||
|
@ -654,5 +656,7 @@ labels.general_menu_system=System
|
|||
labels.general_menu_crawler=Crawler
|
||||
labels.general_menu_logging=Logging
|
||||
labels.general_menu_suggest=Suggest
|
||||
labels.general_menu_ldap=LDAP
|
||||
labels.ldap_provider_url=LDAP URL
|
||||
labels.ldap_security_principal=LDAP Principal
|
||||
labels.send_testmail=Send TestMail
|
||||
|
||||
|
|
|
@ -273,7 +273,7 @@ labels.role_type = \u30ed\u30fc\u30eb
|
|||
labels.label_type = \u30e9\u30d9\u30eb
|
||||
labels.file_crawling_button_create = \u4f5c\u6210
|
||||
labels.file_crawling_button_create_job = \u65b0\u3057\u3044\u30b8\u30e7\u30d6\u306e\u4f5c\u6210
|
||||
labels.web_crawling_configuration = \u30a6\u30a7\u30d6\u30af\u30ed\u30fc\u30ea\u30f3\u30b0
|
||||
labels.web_crawling_configuration = \u30a6\u30a7\u30d6\u306e\u30af\u30ed\u30fc\u30eb
|
||||
labels.web_crawling_title_details = \u30a6\u30a7\u30d6\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a
|
||||
labels.included_urls = \u30af\u30ed\u30fc\u30eb\u5bfe\u8c61\u3068\u3059\u308bURL
|
||||
labels.excluded_urls = \u30af\u30ed\u30fc\u30eb\u5bfe\u8c61\u304b\u3089\u9664\u5916\u3059\u308bURL
|
||||
|
@ -428,8 +428,8 @@ labels.design_file_errorBadRequest = \u30a8\u30e9\u30fc\u30da\u30fc\u30b8 (BadRe
|
|||
labels.design_title_edit_content = \u30da\u30fc\u30b8\u306e\u7de8\u96c6\u30d5\u30a1\u30a4\u30eb\u306e\u8868\u793a
|
||||
labels.design_button_update = \u66f4\u65b0
|
||||
labels.design_button_back = \u623b\u308b
|
||||
labels.data_crawling_configuration = \u30c7\u30fc\u30bf\u306e\u30af\u30ed\u30fc\u30eb
|
||||
labels.data_crawling_title_details = \u30c7\u30fc\u30bf\u306e\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a
|
||||
labels.data_crawling_configuration = \u30c7\u30fc\u30bf\u30b9\u30c8\u30a2\u306e\u30af\u30ed\u30fc\u30eb
|
||||
labels.data_crawling_title_details = \u30c7\u30fc\u30bf\u30b9\u30c8\u30a2\u306e\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a
|
||||
labels.handler_name = \u30cf\u30f3\u30c9\u30e9\u540d
|
||||
labels.handler_parameter = \u30d1\u30e9\u30e1\u30fc\u30bf
|
||||
labels.handler_script = \u30b9\u30af\u30ea\u30d7\u30c8
|
||||
|
@ -487,7 +487,7 @@ labels.file_auth_configuration = \u30d5\u30a1\u30a4\u30eb\u8a8d\u8a3c
|
|||
labels.file_auth_list_hostname = \u30db\u30b9\u30c8\u540d
|
||||
labels.file_auth_list_file_crawling_config = \u8a2d\u5b9a\u540d
|
||||
labels.file_auth_any = \u4efb\u610f
|
||||
labels.file_auth_create_file_config = \u65b0\u3057\u3044FS\u8a2d\u5b9a\u306e\u4f5c\u6210
|
||||
labels.file_auth_create_file_config = \u65b0\u3057\u3044\u30d5\u30a1\u30a4\u30eb\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a\u306e\u4f5c\u6210
|
||||
labels.file_auth_title_details = \u30d5\u30a1\u30a4\u30eb\u8a8d\u8a3c
|
||||
labels.file_auth_hostname = \u30db\u30b9\u30c8\u540d
|
||||
labels.file_auth_port = \u30dd\u30fc\u30c8
|
||||
|
@ -495,7 +495,7 @@ labels.file_auth_scheme = \u30b9\u30ad\u30fc\u30e0
|
|||
labels.file_auth_username = \u30e6\u30fc\u30b6\u30fc\u540d
|
||||
labels.file_auth_password = \u30d1\u30b9\u30ef\u30fc\u30c9
|
||||
labels.file_auth_parameters = \u30d1\u30e9\u30e1\u30fc\u30bf
|
||||
labels.file_auth_file_crawling_config = FS\u8a2d\u5b9a
|
||||
labels.file_auth_file_crawling_config = \u30d5\u30a1\u30a4\u30eb\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a
|
||||
labels.file_auth_scheme_samba = Samba
|
||||
labels.pagination_page_guide_msg = {0}/{1} ({2} \u4ef6)
|
||||
labels.list_could_not_find_crud_table = \u767b\u9332\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
|
@ -645,3 +645,8 @@ labels.general_menu_crawler = \u30af\u30ed\u30fc\u30e9
|
|||
labels.general_menu_logging = \u30ed\u30ae\u30f3\u30b0
|
||||
labels.general_menu_suggest = \u30b5\u30b8\u30a7\u30b9\u30c8
|
||||
labels.send_testmail=\u30c6\u30b9\u30c8\u30e1\u30fc\u30eb\u306e\u9001\u4fe1
|
||||
labels.ldapProviderUrl=LDAP URL
|
||||
labels.ldapSecurityPrincipal=LDAP \u30d7\u30ea\u30f3\u30b7\u30d1\u30eb
|
||||
labels.general_menu_ldap=LDAP
|
||||
labels.ldap_provider_url=LDAP URL
|
||||
labels.ldap_security_principal=LDAP \u30d7\u30ea\u30f3\u30b7\u30d1\u30eb
|
||||
|
|
7
src/main/resources/fess_ldap.xml
Normal file
7
src/main/resources/fess_ldap.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE components PUBLIC "-//DBFLUTE//DTD LastaDi 1.0//EN"
|
||||
"http://dbflute.org/meta/lastadi10.dtd">
|
||||
<components>
|
||||
<component name="ldapManager" class="org.codelibs.fess.ldap.LdapManager">
|
||||
</component>
|
||||
</components>
|
|
@ -288,6 +288,28 @@
|
|||
<la:message key="labels.day" />
|
||||
</div>
|
||||
</div>
|
||||
<%-- LDAP --%>
|
||||
<h4><la:message key="labels.general_menu_ldap" /></h4>
|
||||
<div class="form-group">
|
||||
<label for="ldapProviderUrl"
|
||||
class="col-sm-3 control-label"><la:message
|
||||
key="labels.ldapProviderUrl" /></label>
|
||||
<div class="form-inline col-sm-9">
|
||||
<la:errors property="ldapProviderUrl" />
|
||||
<la:text property="ldapProviderUrl"
|
||||
styleClass="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="ldapSecurityPrincipal"
|
||||
class="col-sm-3 control-label"><la:message
|
||||
key="labels.ldapSecurityPrincipal" /></label>
|
||||
<div class="form-inline col-sm-9">
|
||||
<la:errors property="ldapSecurityPrincipal" />
|
||||
<la:text property="ldapSecurityPrincipal"
|
||||
styleClass="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer">
|
||||
|
|
Loading…
Add table
Reference in a new issue