Author: rgodfrey
Date: Wed Jun 17 00:00:58 2015
New Revision: 1685922
URL: http://svn.apache.org/r1685922
Log:
QPID-6385 : For paths that are not mapped to anything, do not return the index
page, instead send text indicating that the caller should visit the apidocs
Added:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java
- copied, changed from r1685835,
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1685922&r1=1685921&r2=1685922&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
Wed Jun 17 00:00:58 2015
@@ -67,6 +67,7 @@ import org.apache.qpid.server.management
import
org.apache.qpid.server.management.plugin.filter.RedirectingAuthorisationFilter;
import org.apache.qpid.server.management.plugin.servlet.DefinedFileServlet;
import org.apache.qpid.server.management.plugin.servlet.FileServlet;
+import org.apache.qpid.server.management.plugin.servlet.RootServlet;
import org.apache.qpid.server.management.plugin.servlet.rest.ApiDocsServlet;
import org.apache.qpid.server.management.plugin.servlet.rest.LogRecordsServlet;
import
org.apache.qpid.server.management.plugin.servlet.rest.LoggedOnUserPreferencesServlet;
@@ -323,7 +324,7 @@ public class HttpManagement extends Abst
root.addServlet(new ServletHolder(new SaslServlet()), "/service/sasl");
root.addServlet(new ServletHolder(new
DefinedFileServlet("index.html")), HttpManagementUtil.ENTRY_POINT_PATH);
- root.addServlet(new ServletHolder(new
DefinedFileServlet("index.html")), "/");
+ root.addServlet(new ServletHolder(new
RootServlet("/","/apidocs/","index.html")), "/");
root.addServlet(new ServletHolder(new LogoutServlet()), "/logout");
root.addServlet(new ServletHolder(new
FileServlet(DojoHelper.getDojoPath(), true)), "/dojo/dojo/*");
@@ -338,7 +339,7 @@ public class HttpManagement extends Abst
root.addServlet(new ServletHolder(new TimeZoneServlet()),
"/service/timezones");
// QPID-6516
// root.addServlet(new ServletHolder(new LogFileListingServlet()),
"/service/logfilenames");
-// root.addServlet(new ServletHolder(new LogFileServlet()),
"/service/logfile");
+// root.addServlet(new ServletHolder(new Log FileServlet()),
"/service/logfile");
final SessionManager sessionManager =
root.getSessionHandler().getSessionManager();
sessionManager.getSessionCookieConfig().setName(JSESSIONID_COOKIE_PREFIX +
lastPort);
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java?rev=1685922&r1=1685921&r2=1685922&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
Wed Jun 17 00:00:58 2015
@@ -19,6 +19,7 @@ package org.apache.qpid.server.managemen
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
@@ -32,17 +33,27 @@ public class DefinedFileServlet extends
{
private static final String FILENAME_INIT_PARAMETER = "filename";
+ private final String _expectedPath;
+ private final String _apiDocsPath;
private String _filename;
public DefinedFileServlet()
{
- super();
+ this(null);
}
public DefinedFileServlet(String filename)
{
+ this(filename, null, null);
+ }
+
+
+ public DefinedFileServlet(String filename, String expectedPath, String
apiDocsPath)
+ {
_filename = filename;
+ _expectedPath = expectedPath;
+ _apiDocsPath = apiDocsPath;
}
@Override
@@ -59,26 +70,43 @@ public class DefinedFileServlet extends
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
{
- try (OutputStream output = HttpManagementUtil.getOutputStream(request,
response))
+ final String path = request.getServletPath();
+ if(_expectedPath == null || _expectedPath.equals(path == null ? "" :
path))
{
- try(InputStream fileInput =
getClass().getResourceAsStream("/resources/" + _filename))
+ try (OutputStream output =
HttpManagementUtil.getOutputStream(request, response))
{
- if (fileInput != null)
+ try (InputStream fileInput =
getClass().getResourceAsStream("/resources/" + _filename))
{
- byte[] buffer = new byte[1024];
- response.setStatus(HttpServletResponse.SC_OK);
- int read = 0;
-
- while ((read = fileInput.read(buffer)) > 0)
+ if (fileInput != null)
{
- output.write(buffer, 0, read);
+ byte[] buffer = new byte[1024];
+ response.setStatus(HttpServletResponse.SC_OK);
+ int read = 0;
+
+ while ((read = fileInput.read(buffer)) > 0)
+ {
+ output.write(buffer, 0, read);
+ }
+ }
+ else
+ {
+ response.sendError(HttpServletResponse.SC_NOT_FOUND,
"unknown file: " + _filename);
}
}
- else
- {
- response.sendError(HttpServletResponse.SC_NOT_FOUND,
"unknown file: " + _filename);
- }
}
}
+ else
+ {
+ try (OutputStream output =
HttpManagementUtil.getOutputStream(request, response))
+ {
+ final String notFoundMessage = "Unknown path '"
+ + request.getServletPath()
+ + "'. Please read the api docs at "
+ + request.getScheme()
+ + "://" + request.getServerName() + ":" +
request.getServerPort() + _apiDocsPath + "\n";
+ output.write(notFoundMessage.getBytes(StandardCharsets.UTF_8));
+ }
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ }
}
}
Copied:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java
(from r1685835,
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java)
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java&p1=qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java&r1=1685835&r2=1685922&rev=1685922&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java
Wed Jun 17 00:00:58 2015
@@ -19,8 +19,8 @@ package org.apache.qpid.server.managemen
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
-import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -28,57 +28,68 @@ import javax.servlet.http.HttpServletRes
import org.apache.qpid.server.management.plugin.HttpManagementUtil;
-public class DefinedFileServlet extends HttpServlet
+public class RootServlet extends HttpServlet
{
- private static final String FILENAME_INIT_PARAMETER = "filename";
+ private final String _expectedPath;
+ private final String _apiDocsPath;
+ private final String _filename;
- private String _filename;
- public DefinedFileServlet()
- {
- super();
- }
-
- public DefinedFileServlet(String filename)
+ public RootServlet(String expectedPath, String apiDocsPath, String
filename)
{
+ _expectedPath = expectedPath;
+ _apiDocsPath = apiDocsPath;
_filename = filename;
}
@Override
public void init() throws ServletException
{
- ServletConfig config = getServletConfig();
- String fileName = config.getInitParameter(FILENAME_INIT_PARAMETER);
- if (fileName != null && !"".equals(fileName))
- {
- _filename = fileName;
- }
+
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
{
- try (OutputStream output = HttpManagementUtil.getOutputStream(request,
response))
+ final String path = request.getServletPath();
+ if(_expectedPath == null || _expectedPath.equals(path == null ? "" :
path))
{
- try(InputStream fileInput =
getClass().getResourceAsStream("/resources/" + _filename))
+ try (OutputStream output =
HttpManagementUtil.getOutputStream(request, response))
{
- if (fileInput != null)
+ try (InputStream fileInput =
getClass().getResourceAsStream("/resources/" + _filename))
{
- byte[] buffer = new byte[1024];
- response.setStatus(HttpServletResponse.SC_OK);
- int read = 0;
-
- while ((read = fileInput.read(buffer)) > 0)
+ if (fileInput != null)
{
- output.write(buffer, 0, read);
+ byte[] buffer = new byte[1024];
+ response.setStatus(HttpServletResponse.SC_OK);
+ int read = 0;
+
+ while ((read = fileInput.read(buffer)) > 0)
+ {
+ output.write(buffer, 0, read);
+ }
+ }
+ else
+ {
+ response.sendError(HttpServletResponse.SC_NOT_FOUND,
"unknown file: " + _filename);
}
}
- else
- {
- response.sendError(HttpServletResponse.SC_NOT_FOUND,
"unknown file: " + _filename);
- }
}
}
+ else
+ {
+
+ try (OutputStream output =
HttpManagementUtil.getOutputStream(request, response))
+ {
+ final String notFoundMessage = "Unknown path '"
+ + request.getServletPath()
+ + "'. Please read the api docs at "
+ + request.getScheme()
+ + "://" + request.getServerName() + ":" +
request.getServerPort() + _apiDocsPath + "\n";
+ output.write(notFoundMessage.getBytes(StandardCharsets.UTF_8));
+ }
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]