/* * * Paros and its related class files. * * Paros is an HTTP/HTTPS proxy for assessing web application security. * Copyright (C) 2003-2004 Chinotec Technologies Company * * This program is free software; you can redistribute it and/or * modify it under the terms of the Clarified Artistic License * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * Clarified Artistic License for more details. * * You should have received a copy of the Clarified Artistic License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // ZAP: 2011/04/16 i18n // ZAP: 2012/04/25 Added type arguments to generic type, removed unused // variable and added @Override annotation to all appropriate methods. // ZAP: 2013/01/23 Clean up of exception handling/logging. // ZAP: 2013/01/25 Removed the "(non-Javadoc)" comments. // ZAP: 2013/03/03 Issue 546: Remove all template Javadoc comments // ZAP: 2016/06/07 Use Constant.FOLDER_FILTER package org.parosproxy.paros.extension.filter; import java.nio.file.Paths; import java.util.Hashtable; import org.apache.commons.httpclient.URI; import org.apache.log4j.Logger; import org.parosproxy.paros.Constant; import org.parosproxy.paros.network.HttpMessage; import org.parosproxy.paros.network.HttpRequestHeader; public class FilterLogPostQuery extends FilterLogGetQuery { private static final String LOG_FILE = Paths.get(Constant.FOLDER_FILTER, "post.xls").toString(); private static final Logger logger = Logger.getLogger(FilterLogPostQuery.class); @Override public int getId() { return 30; } @Override public String getName() { return Constant.messages.getString("filter.logposts.name") + getLogFileName(); } @Override protected String getLogFileName() { return LOG_FILE; } @Override public void onHttpRequestSend(HttpMessage httpMessage) { HttpRequestHeader reqHeader = httpMessage.getRequestHeader(); if (reqHeader != null && reqHeader.isText() && !reqHeader.isImage()){ if (reqHeader.getMethod().equalsIgnoreCase(HttpRequestHeader.POST)){ try{ URI uri = reqHeader.getURI(); // ZAP: Removed unused variable (int pos). String firstline; URI newURI = (URI) uri.clone(); String query = httpMessage.getRequestBody().toString(); if (query != null) { newURI.setQuery(null); firstline = newURI.toString(); // ZAP: Added type arguments. Hashtable<String, String> param = parseParameter(query); writeLogFile(firstline,param); } else { firstline = uri.toString(); writeLogFile(firstline,null); } }catch(Exception e){ logger.error(e.getMessage(), e); } } } } }