Servlets: Add Accept-Ranges headers

This commit is contained in:
zzz
2018-03-09 16:02:00 +00:00
parent 9dcf48ea81
commit a845d4f225
25 changed files with 30 additions and 3 deletions

View File

@ -384,12 +384,14 @@ class BasicServlet extends HttpServlet
if (lml > 0) if (lml > 0)
response.setDateHeader("Last-Modified",lml); response.setDateHeader("Last-Modified",lml);
if (count != -1) if (count != -1) {
{ if (count <= Integer.MAX_VALUE)
if (count<Integer.MAX_VALUE)
response.setContentLength((int)count); response.setContentLength((int)count);
else else
response.setHeader("Content-Length", Long.toString(count)); response.setHeader("Content-Length", Long.toString(count));
response.setHeader("Accept-Ranges", "bytes");
} else {
response.setHeader("Accept-Ranges", "none");
} }
long ct = content.getCacheTime(); long ct = content.getCacheTime();

View File

@ -404,6 +404,7 @@ public class I2PSnarkServlet extends BasicServlet {
resp.setHeader("X-XSS-Protection", "1; mode=block"); resp.setHeader("X-XSS-Protection", "1; mode=block");
resp.setHeader("X-Content-Type-Options", "nosniff"); resp.setHeader("X-Content-Type-Options", "nosniff");
resp.setHeader("Referrer-Policy", "no-referrer"); resp.setHeader("Referrer-Policy", "no-referrer");
resp.setHeader("Accept-Ranges", "none");
} }
private void writeMessages(PrintWriter out, boolean isConfigure, String peerString) throws IOException { private void writeMessages(PrintWriter out, boolean isConfigure, String peerString) throws IOException {

View File

@ -7,6 +7,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%><%@page pageEncoding="UTF-8" %><%@page pageEncoding="UTF-8"
%><%@page trimDirectiveWhitespaces="true" %><%@page trimDirectiveWhitespaces="true"

View File

@ -10,6 +10,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%><%@page pageEncoding="UTF-8" %><%@page pageEncoding="UTF-8"
%><%@page trimDirectiveWhitespaces="true" %><%@page trimDirectiveWhitespaces="true"

View File

@ -6,6 +6,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%><%@page pageEncoding="UTF-8" %><%@page pageEncoding="UTF-8"
%><%@page contentType="text/html" import="java.io.InputStream,net.i2p.i2ptunnel.web.EditBean,net.i2p.servlet.RequestWrapper,net.i2p.client.I2PSessionException,net.i2p.client.naming.HostTxtEntry,net.i2p.data.PrivateKeyFile,net.i2p.data.SigningPrivateKey,net.i2p.util.OrderedProperties" %><%@page contentType="text/html" import="java.io.InputStream,net.i2p.i2ptunnel.web.EditBean,net.i2p.servlet.RequestWrapper,net.i2p.client.I2PSessionException,net.i2p.client.naming.HostTxtEntry,net.i2p.data.PrivateKeyFile,net.i2p.data.SigningPrivateKey,net.i2p.util.OrderedProperties"

View File

@ -10,6 +10,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%><%@page pageEncoding="UTF-8" %><%@page pageEncoding="UTF-8"
%><%@page contentType="text/html" import="net.i2p.i2ptunnel.web.EditBean" %><%@page contentType="text/html" import="net.i2p.i2ptunnel.web.EditBean"

View File

@ -167,6 +167,7 @@ public class IdenticonServlet extends HttpServlet {
// return image bytes to requester // return image bytes to requester
response.setContentType(IDENTICON_IMAGE_MIMETYPE); response.setContentType(IDENTICON_IMAGE_MIMETYPE);
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Accept-Ranges", "none");
response.setContentLength(imageBytes.length); response.setContentLength(imageBytes.length);
response.getOutputStream().write(imageBytes); response.getOutputStream().write(imageBytes);
} }

View File

@ -193,6 +193,7 @@ public class QRServlet extends HttpServlet {
// return image bytes to requester // return image bytes to requester
response.setContentType(IDENTICON_IMAGE_MIMETYPE); response.setContentType(IDENTICON_IMAGE_MIMETYPE);
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Accept-Ranges", "none");
response.setContentLength(imageBytes.length); response.setContentLength(imageBytes.length);
response.getOutputStream().write(imageBytes); response.getOutputStream().write(imageBytes);
} }

View File

@ -63,6 +63,7 @@ public class RandomArtServlet extends HttpServlet {
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
} }
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Accept-Ranges", "none");
buf.append(RandomArt.gnutls_key_fingerprint_randomart(h.getData(), "SHA", 256, "", true, html)); buf.append(RandomArt.gnutls_key_fingerprint_randomart(h.getData(), "SHA", 256, "", true, html));
if (html) if (html)
buf.append("</body></html>"); buf.append("</body></html>");

View File

@ -43,6 +43,7 @@ public class CodedIconRendererServlet extends HttpServlet {
srs.setContentType("image/png"); srs.setContentType("image/png");
srs.setHeader("X-Content-Type-Options", "nosniff"); srs.setHeader("X-Content-Type-Options", "nosniff");
srs.setHeader("Accept-Ranges", "none");
srs.setDateHeader("Expires", I2PAppContext.getGlobalContext().clock().now() + 86400000l); srs.setDateHeader("Expires", I2PAppContext.getGlobalContext().clock().now() + 86400000l);
srs.setHeader("Cache-Control", "public, max-age=86400"); srs.setHeader("Cache-Control", "public, max-age=86400");
OutputStream os = srs.getOutputStream(); OutputStream os = srs.getOutputStream();

View File

@ -29,6 +29,8 @@
<jsp:setProperty name="intl" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <jsp:setProperty name="intl" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
<link rel="icon" href="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/favicon.ico"> <link rel="icon" href="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/favicon.ico">
<% <%
response.setHeader("Accept-Ranges", "none");
// clickjacking // clickjacking
if (intl.shouldSendXFrame()) { if (intl.shouldSendXFrame()) {
response.setHeader("X-Frame-Options", "SAMEORIGIN"); response.setHeader("X-Frame-Options", "SAMEORIGIN");

View File

@ -17,6 +17,7 @@ try {
} }
try { try {
response.setDateHeader("Expires", 0); response.setDateHeader("Expires", 0);
response.setHeader("Accept-Ranges", "none");
response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");
response.addHeader("Pragma", "no-cache"); response.addHeader("Pragma", "no-cache");
String name = "family-" + family + "-secret.crt"; String name = "family-" + family + "-secret.crt";

View File

@ -44,6 +44,7 @@ if (c != null &&
if (length > 0) if (length > 0)
response.setHeader("Content-Length", Long.toString(length)); response.setHeader("Content-Length", Long.toString(length));
response.setContentType("image/png"); response.setContentType("image/png");
response.setHeader("Accept-Ranges", "none");
try { try {
net.i2p.util.FileUtil.readFile(file, base, cout); net.i2p.util.FileUtil.readFile(file, base, cout);
} catch (java.io.IOException ioe) { } catch (java.io.IOException ioe) {

View File

@ -8,6 +8,7 @@
*/ */
response.setContentType("text/plain"); response.setContentType("text/plain");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Accept-Ranges", "none");
response.setDateHeader("Expires", 0); response.setDateHeader("Expires", 0);
response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");
response.addHeader("Pragma", "no-cache"); response.addHeader("Pragma", "no-cache");

View File

@ -16,6 +16,7 @@ if (length <= 0 || !f.isFile()) {
} else { } else {
response.setContentType("text/plain"); response.setContentType("text/plain");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Accept-Ranges", "none");
response.setHeader("Content-Length", Long.toString(length)); response.setHeader("Content-Length", Long.toString(length));
response.setDateHeader("Expires", 0); response.setDateHeader("Expires", 0);
response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");

View File

@ -45,6 +45,7 @@ if ( !rendered && ((rs != null) || fakeBw) ) {
response.setContentType("image/png"); response.setContentType("image/png");
// very brief 45 sec expire // very brief 45 sec expire
response.setDateHeader("Expires", net.i2p.I2PAppContext.getGlobalContext().clock().now() + (45*1000)); response.setDateHeader("Expires", net.i2p.I2PAppContext.getGlobalContext().clock().now() + (45*1000));
response.setHeader("Accept-Ranges", "none");
// http://jira.codehaus.org/browse/JETTY-1346 // http://jira.codehaus.org/browse/JETTY-1346
// This doesn't actually appear in the response, but it fixes the problem, // This doesn't actually appear in the response, but it fixes the problem,
// so Jetty must look for this header and close the connection. // so Jetty must look for this header and close the connection.

View File

@ -21,6 +21,7 @@ if (uri.endsWith(".css")) {
} else if (uri.endsWith(".svg")) { } else if (uri.endsWith(".svg")) {
response.setContentType("image/svg+xml"); response.setContentType("image/svg+xml");
} }
response.setHeader("Accept-Ranges", "none");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
/* /*
* User or plugin themes * User or plugin themes

View File

@ -15,6 +15,7 @@ if (length <= 0 || !f.isFile()) {
response.setContentType("text/plain"); response.setContentType("text/plain");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Content-Length", Long.toString(length)); response.setHeader("Content-Length", Long.toString(length));
response.setHeader("Accept-Ranges", "none");
response.setDateHeader("Expires", 0); response.setDateHeader("Expires", 0);
response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");
response.addHeader("Pragma", "no-cache"); response.addHeader("Pragma", "no-cache");

View File

@ -32,6 +32,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%> %>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>

View File

@ -32,6 +32,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%> %>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>

View File

@ -29,6 +29,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%> %>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>

View File

@ -24,6 +24,7 @@
if (request.getCharacterEncoding() == null) if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Accept-Ranges", "none");
%> %>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<%@page trimDirectiveWhitespaces="true"%> <%@page trimDirectiveWhitespaces="true"%>

View File

@ -32,6 +32,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%> %>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>

View File

@ -32,6 +32,7 @@
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
%> %>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>

View File

@ -1911,6 +1911,7 @@ public class WebMail extends HttpServlet
response.setHeader("X-XSS-Protection", "1; mode=block"); response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("X-Content-Type-Options", "nosniff"); response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("Referrer-Policy", "no-referrer"); response.setHeader("Referrer-Policy", "no-referrer");
response.setHeader("Accept-Ranges", "none");
RequestWrapper request = new RequestWrapper( httpRequest ); RequestWrapper request = new RequestWrapper( httpRequest );
SessionObject sessionObject = null; SessionObject sessionObject = null;