Issue #5539 - Updating StatisticsServlet accept processing per review
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
This commit is contained in:
parent
770be2dbc3
commit
683d9a9349
|
@ -39,6 +39,7 @@ import javax.servlet.http.HttpServlet;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.eclipse.jetty.http.HttpHeader;
|
||||||
import org.eclipse.jetty.http.QuotedQualityCSV;
|
import org.eclipse.jetty.http.QuotedQualityCSV;
|
||||||
import org.eclipse.jetty.io.ConnectionStatistics;
|
import org.eclipse.jetty.io.ConnectionStatistics;
|
||||||
import org.eclipse.jetty.server.AbstractConnector;
|
import org.eclipse.jetty.server.AbstractConnector;
|
||||||
|
@ -212,8 +213,17 @@ public class StatisticsServlet extends HttpServlet
|
||||||
|
|
||||||
private List<String> getOrderedAcceptableMimeTypes(HttpServletRequest request)
|
private List<String> getOrderedAcceptableMimeTypes(HttpServletRequest request)
|
||||||
{
|
{
|
||||||
QuotedQualityCSV values = null;
|
QuotedQualityCSV values = new QuotedQualityCSV(QuotedQualityCSV.MOST_SPECIFIC_MIME_ORDERING);
|
||||||
Enumeration<String> enumAccept = request.getHeaders("Accept");
|
|
||||||
|
// No accept header specified, try 'accept' parameter (for those clients that are
|
||||||
|
// so ancient that they cannot set the standard HTTP `Accept` header)
|
||||||
|
String acceptParameter = request.getParameter("accept");
|
||||||
|
if (acceptParameter != null)
|
||||||
|
{
|
||||||
|
values.addValue(acceptParameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
Enumeration<String> enumAccept = request.getHeaders(HttpHeader.ACCEPT.toString());
|
||||||
if (enumAccept != null)
|
if (enumAccept != null)
|
||||||
{
|
{
|
||||||
while (enumAccept.hasMoreElements())
|
while (enumAccept.hasMoreElements())
|
||||||
|
@ -221,33 +231,20 @@ public class StatisticsServlet extends HttpServlet
|
||||||
String value = enumAccept.nextElement();
|
String value = enumAccept.nextElement();
|
||||||
if (StringUtil.isNotBlank(value))
|
if (StringUtil.isNotBlank(value))
|
||||||
{
|
{
|
||||||
if (values == null)
|
|
||||||
{
|
|
||||||
values = new QuotedQualityCSV(QuotedQualityCSV.MOST_SPECIFIC_MIME_ORDERING);
|
|
||||||
}
|
|
||||||
values.addValue(value);
|
values.addValue(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (values != null)
|
if (values.isEmpty())
|
||||||
{
|
{
|
||||||
return values.getValues();
|
|
||||||
}
|
|
||||||
|
|
||||||
// No accept header specified, try 'accept' parameter (for those clients that are
|
|
||||||
// so ancient that they cannot set the standard HTTP `Accept` header)
|
|
||||||
String acceptParameter = request.getParameter("accept");
|
|
||||||
if (acceptParameter != null)
|
|
||||||
{
|
|
||||||
// return that we support the one type specified in the 'accept' parameter
|
|
||||||
return Collections.singletonList(acceptParameter);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return that we allow ALL mime types
|
// return that we allow ALL mime types
|
||||||
return Collections.singletonList("*/*");
|
return Collections.singletonList("*/*");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return values.getValues();
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isLoopbackAddress(String address)
|
private boolean isLoopbackAddress(String address)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
Loading…
Reference in New Issue