Fix recursive logic

This commit is contained in:
Maxime Dor
2017-10-02 17:26:51 +02:00
parent 640512eb27
commit 3954be2f08

View File

@@ -66,9 +66,11 @@ public class MappingController {
private void setRequesterInfo(ALookupRequest lookupReq, HttpServletRequest req) { private void setRequesterInfo(ALookupRequest lookupReq, HttpServletRequest req) {
lookupReq.setRequester(req.getRemoteAddr()); lookupReq.setRequester(req.getRemoteAddr());
String xff = req.getHeader("X-FORWARDED-FOR"); String xff = req.getHeader("X-FORWARDED-FOR");
lookupReq.setRecursive(StringUtils.isNotBlank(xff)); log.debug("XFF header: {}", xff);
if (lookupReq.isRecursive()) { lookupReq.setRecursive(StringUtils.isBlank(xff));
if (!lookupReq.isRecursive()) {
lookupReq.setRecurseHosts(Arrays.asList(xff.split(","))); lookupReq.setRecurseHosts(Arrays.asList(xff.split(",")));
lookupReq.setRequester(lookupReq.getRecurseHosts().get(lookupReq.getRecurseHosts().size() - 1));
} }
lookupReq.setUserAgent(req.getHeader("USER-AGENT")); lookupReq.setUserAgent(req.getHeader("USER-AGENT"));
@@ -106,7 +108,7 @@ public class MappingController {
String bulkLookup(HttpServletRequest request) { String bulkLookup(HttpServletRequest request) {
BulkLookupRequest lookupRequest = new BulkLookupRequest(); BulkLookupRequest lookupRequest = new BulkLookupRequest();
setRequesterInfo(lookupRequest, request); setRequesterInfo(lookupRequest, request);
log.info("Got single lookup request from {} with client {} - Is recursive? {}", lookupRequest.getRequester(), lookupRequest.getUserAgent(), lookupRequest.isRecursive()); log.info("Got bulk lookup request from {} with client {} - Is recursive? {}", lookupRequest.getRequester(), lookupRequest.getUserAgent(), lookupRequest.isRecursive());
try { try {
ClientBulkLookupRequest input = parser.parse(request, ClientBulkLookupRequest.class); ClientBulkLookupRequest input = parser.parse(request, ClientBulkLookupRequest.class);