fix #880 use x-forwarded-for

This commit is contained in:
Shinsuke Sugaya 2017-02-06 23:50:40 +09:00
parent bfdd3d89e5
commit 859cb0dcb9
4 changed files with 14 additions and 11 deletions

View file

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

View file

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

View file

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

View file

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