diff --git a/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java b/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java index a715315ed..49b7f034d 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java @@ -16,6 +16,7 @@ package org.codelibs.fess.app.web.admin.scheduler; import java.text.MessageFormat; +import java.util.Base64; import javax.annotation.Resource; @@ -121,7 +122,8 @@ public class AdminSchedulerAction extends FessAdminAction { scheduledJobForm.crawler = Constants.ON; scheduledJobForm.available = Constants.ON; scheduledJobForm.cronExpression = null; - scheduledJobForm.name = MessageFormat.format(fessConfig.getJobTemplateTitle(type), name); + final String decodedName = new String(Base64.getUrlDecoder().decode(name), Constants.CHARSET_UTF_8); + scheduledJobForm.name = MessageFormat.format(fessConfig.getJobTemplateTitle(type), decodedName); final String[] ids = new String[] { "", "", "" }; if (Constants.WEB_CRAWLER_TYPE.equals(type)) { ids[0] = "\"" + id + "\""; diff --git a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java index 73cceab75..71a3396e5 100644 --- a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java +++ b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java @@ -21,6 +21,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Base64; import java.util.Date; import java.util.Enumeration; import java.util.List; @@ -32,6 +33,7 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringEscapeUtils; import org.codelibs.core.lang.StringUtil; +import org.codelibs.core.misc.Base64Util; import org.codelibs.fess.Constants; import org.codelibs.fess.entity.FacetQueryView; import org.codelibs.fess.helper.ViewHelper; @@ -216,4 +218,10 @@ public class FessFunctions { return query; } + public static String base64(final String value) { + if (value == null) { + return StringUtil.EMPTY; + } + return Base64.getEncoder().encodeToString(value.getBytes(Constants.CHARSET_UTF_8)); + } } diff --git a/src/main/webapp/WEB-INF/fe.tld b/src/main/webapp/WEB-INF/fe.tld index a6c38ef65..a1ccf647d 100644 --- a/src/main/webapp/WEB-INF/fe.tld +++ b/src/main/webapp/WEB-INF/fe.tld @@ -179,4 +179,16 @@ + + + Returns base64 encoded value. + + base64 + org.codelibs.fess.taglib.FessFunctions + java.lang.String base64(java.lang.String) + + ${fe:base64(value)} + + + diff --git a/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_details.jsp b/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_details.jsp index 87c4e0588..383db48ad 100644 --- a/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_details.jsp +++ b/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_details.jsp @@ -121,7 +121,7 @@