fix #880 use x-forwarded-for
This commit is contained in:
parent
bfdd3d89e5
commit
859cb0dcb9
4 changed files with 14 additions and 11 deletions
|
@ -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)) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue