diff --git a/src/main/java/org/codelibs/fess/api/gsa/GsaApiManager.java b/src/main/java/org/codelibs/fess/api/gsa/GsaApiManager.java index 3f60a13df..836726e4d 100644 --- a/src/main/java/org/codelibs/fess/api/gsa/GsaApiManager.java +++ b/src/main/java/org/codelibs/fess/api/gsa/GsaApiManager.java @@ -127,7 +127,7 @@ public class GsaApiManager extends BaseApiManager implements WebApiManager { final String ie = request.getCharacterEncoding(); final String oe = "UTF-8"; // IP address - final String ip = request.getRemoteAddr(); + final String ip = ComponentUtil.getViewHelper().getClientIp(request); final String start = request.getParameter("start"); long startNumber = 1; if (StringUtil.isNotBlank(start)) { diff --git a/src/main/java/org/codelibs/fess/helper/ActivityHelper.java b/src/main/java/org/codelibs/fess/helper/ActivityHelper.java index c78ca1086..27bbec6ba 100644 --- a/src/main/java/org/codelibs/fess/helper/ActivityHelper.java +++ b/src/main/java/org/codelibs/fess/helper/ActivityHelper.java @@ -20,8 +20,8 @@ import java.time.format.DateTimeFormatter; import javax.annotation.PostConstruct; -import org.codelibs.core.lang.StringUtil; import org.codelibs.fess.mylasta.action.FessUserBean; +import org.codelibs.fess.util.ComponentUtil; import org.dbflute.optional.OptionalThing; import org.lastaflute.web.util.LaRequestUtil; import org.slf4j.Logger; @@ -88,14 +88,7 @@ public class ActivityHelper { } protected static String getClientIp() { - return LaRequestUtil.getOptionalRequest().map(req -> { - final String value = req.getHeader("x-forwarded-for"); - if (StringUtil.isNotBlank(value)) { - return value; - } else { - return req.getRemoteAddr(); - } - }).orElse("-"); + return LaRequestUtil.getOptionalRequest().map(req -> ComponentUtil.getViewHelper().getClientIp(req)).orElse("-"); } protected enum Action { diff --git a/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java b/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java index 4818a7fa8..9ff87e6f8 100644 --- a/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java @@ -102,7 +102,7 @@ public class SearchLogHelper { }); final HttpServletRequest request = LaRequestUtil.getRequest(); - searchLog.setClientIp(StringUtils.abbreviate(request.getRemoteAddr(), 50)); + searchLog.setClientIp(StringUtils.abbreviate(ComponentUtil.getViewHelper().getClientIp(request), 100)); searchLog.setReferer(StringUtils.abbreviate(request.getHeader("referer"), 1000)); searchLog.setUserAgent(StringUtils.abbreviate(request.getHeader("user-agent"), 255)); final Object accessType = request.getAttribute(Constants.SEARCH_LOG_ACCESS_TYPE); diff --git a/src/main/java/org/codelibs/fess/helper/ViewHelper.java b/src/main/java/org/codelibs/fess/helper/ViewHelper.java index b24c36c69..f831b189f 100644 --- a/src/main/java/org/codelibs/fess/helper/ViewHelper.java +++ b/src/main/java/org/codelibs/fess/helper/ViewHelper.java @@ -34,6 +34,7 @@ import java.util.regex.Pattern; import javax.annotation.PostConstruct; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import org.apache.catalina.connector.ClientAbortException; import org.apache.commons.lang3.StringEscapeUtils; @@ -608,6 +609,15 @@ public class ViewHelper { response.contentType(mimeType); } + public String getClientIp(final HttpServletRequest request) { + final String value = request.getHeader("x-forwarded-for"); + if (StringUtil.isNotBlank(value)) { + return value; + } else { + return request.getRemoteAddr(); + } + } + public boolean isUseSession() { return useSession; }