diff options
Diffstat (limited to 'qpid/java/broker-plugins/management-http/src/main/java/org/apache')
17 files changed, 148 insertions, 58 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java index 613218f2fc..d29144f09b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java @@ -111,6 +111,9 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem @ManagedAttributeField private int _sessionTimeout; + @ManagedAttributeField + private boolean _compressResponses; + private boolean _allowPortActivation; @ManagedObjectFactoryConstructor @@ -477,6 +480,12 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem } @Override + public boolean isCompressResponses() + { + return _compressResponses; + } + + @Override public AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress) { return getBroker().getAuthenticationProvider(localAddress); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java index aff9f3a7e2..9eef1a6e5c 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java @@ -29,6 +29,7 @@ import org.apache.qpid.server.model.Plugin; public interface HttpManagementConfiguration<X extends HttpManagementConfiguration<X>> extends Plugin<X> { + @ManagedAttribute( defaultValue = "true" ) boolean isHttpsSaslAuthenticationEnabled(); @@ -44,6 +45,13 @@ public interface HttpManagementConfiguration<X extends HttpManagementConfigurati @ManagedAttribute( defaultValue = "600" ) public int getSessionTimeout(); + String HTTP_MANAGEMENT_COMPRESS_RESPONSES = "httpManagement.compressResponses"; + @ManagedContextDefault(name = HTTP_MANAGEMENT_COMPRESS_RESPONSES) + boolean DEFAULT_COMPRESS_RESPONSES = false; + + @ManagedAttribute( defaultValue = "${"+HTTP_MANAGEMENT_COMPRESS_RESPONSES+"}" ) + public boolean isCompressResponses(); + String MAX_HTTP_FILE_UPLOAD_SIZE_CONTEXT_NAME = "maxHttpFileUploadSize"; @ManagedContextDefault( name = MAX_HTTP_FILE_UPLOAD_SIZE_CONTEXT_NAME) static final long DEFAULT_MAX_UPLOAD_SIZE = 100 * 1024; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java index ef0a68a42b..847ada3407 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java @@ -20,17 +20,24 @@ */ package org.apache.qpid.server.management.plugin; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.Principal; import java.security.PrivilegedAction; import java.security.cert.X509Certificate; import java.util.Collections; +import java.util.zip.GZIPOutputStream; import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.codec.binary.Base64; @@ -71,6 +78,10 @@ public class HttpManagementUtil private static final String ATTR_SUBJECT = "Qpid.subject"; private static final String ATTR_LOG_ACTOR = "Qpid.logActor"; + private static final String ACCEPT_ENCODING_HEADER = "Accept-Encoding"; + private static final String CONTENT_ENCODING_HEADER = "Content-Encoding"; + private static final String GZIP_CONTENT_ENCODING = "gzip"; + public static Broker<?> getBroker(ServletContext servletContext) { return (Broker<?>) servletContext.getAttribute(ATTR_BROKER); @@ -219,5 +230,42 @@ public class HttpManagementUtil return null; } + public static Writer getOutputWriter(final HttpServletRequest request, final HttpServletResponse response) + throws IOException + { + return getOutputWriter(request, response, getManagementConfiguration(request.getServletContext())); + } + + public static Writer getOutputWriter(final HttpServletRequest request, final HttpServletResponse response, HttpManagementConfiguration managementConfiguration) + throws IOException + { + Writer writer; + writer = new BufferedWriter(new OutputStreamWriter(getOutputStream(request,response, managementConfiguration))); + return writer; + } + + public static OutputStream getOutputStream(final HttpServletRequest request, final HttpServletResponse response) + throws IOException + { + return getOutputStream(request, response, getManagementConfiguration(request.getServletContext())); + } + + public static OutputStream getOutputStream(final HttpServletRequest request, final HttpServletResponse response, HttpManagementConfiguration managementConfiguration) + throws IOException + { + OutputStream outputStream; + if(managementConfiguration.isCompressResponses() + && Collections.list(request.getHeaderNames()).contains(ACCEPT_ENCODING_HEADER) + && request.getHeader(ACCEPT_ENCODING_HEADER).contains(GZIP_CONTENT_ENCODING)) + { + outputStream = new GZIPOutputStream(response.getOutputStream()); + response.setHeader(CONTENT_ENCODING_HEADER, GZIP_CONTENT_ENCODING); + } + else + { + outputStream = response.getOutputStream(); + } + return outputStream; + } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java index e6ae47dcff..d8f8e4e4b0 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java @@ -18,14 +18,16 @@ package org.apache.qpid.server.management.plugin.servlet; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import javax.servlet.ServletConfig; import javax.servlet.ServletException; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.qpid.server.management.plugin.HttpManagementUtil; + public class DefinedFileServlet extends HttpServlet { @@ -57,23 +59,25 @@ public class DefinedFileServlet extends HttpServlet @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - final ServletOutputStream output = response.getOutputStream(); - InputStream fileInput = getClass().getResourceAsStream("/resources/"+_filename); - - if(fileInput != null) + try (OutputStream output = HttpManagementUtil.getOutputStream(request, response)) { - byte[] buffer = new byte[1024]; - response.setStatus(HttpServletResponse.SC_OK); - int read = 0; + InputStream fileInput = getClass().getResourceAsStream("/resources/" + _filename); - 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); } } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java index 618aaed319..3eab80dbd8 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java @@ -22,17 +22,19 @@ package org.apache.qpid.server.management.plugin.servlet; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; import java.util.Collections; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.qpid.server.management.plugin.HttpManagementUtil; + public class FileServlet extends HttpServlet { private static final String RESOURCES_PREFIX = "/resources"; @@ -97,7 +99,7 @@ public class FileServlet extends HttpServlet { byte[] buffer = new byte[1024]; int read = 0; - ServletOutputStream output = response.getOutputStream(); + OutputStream output = HttpManagementUtil.getOutputStream(request, response); try { while((read = fileInput.read(buffer)) != -1) diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java index a9e80db3bf..c05814bb9c 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java @@ -21,7 +21,8 @@ package org.apache.qpid.server.management.plugin.servlet.rest; import java.io.IOException; -import java.io.PrintWriter; +import java.io.OutputStream; +import java.io.Writer; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; @@ -32,16 +33,18 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import org.apache.log4j.Logger; -import org.apache.qpid.server.management.plugin.HttpManagementConfiguration; -import org.apache.qpid.server.management.plugin.HttpManagementUtil; -import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.util.ConnectionScopedRuntimeException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig; +import org.apache.qpid.server.management.plugin.HttpManagementConfiguration; +import org.apache.qpid.server.management.plugin.HttpManagementUtil; +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.util.ConnectionScopedRuntimeException; + public abstract class AbstractServlet extends HttpServlet { private static final Logger LOGGER = Logger.getLogger(AbstractServlet.class); @@ -137,6 +140,18 @@ public abstract class AbstractServlet extends HttpServlet ); } + public Writer getOutputWriter(final HttpServletRequest request, final HttpServletResponse response) + throws IOException + { + return HttpManagementUtil.getOutputWriter(request, response, _managementConfiguration); + } + + public OutputStream getOutputStream(final HttpServletRequest request, final HttpServletResponse response) + throws IOException + { + return HttpManagementUtil.getOutputStream(request, response, _managementConfiguration); + } + /** * Performs the PUT action as the logged-in {@link Subject}. * Subclasses commonly override this method @@ -247,7 +262,7 @@ public abstract class AbstractServlet extends HttpServlet } } - protected void sendJsonResponse(Object object, HttpServletResponse response) throws IOException, + protected void sendJsonResponse(Object object, HttpServletRequest request, HttpServletResponse response) throws IOException, JsonGenerationException, JsonMappingException { response.setStatus(HttpServletResponse.SC_OK); @@ -257,7 +272,7 @@ public abstract class AbstractServlet extends HttpServlet response.setDateHeader ("Expires", 0); response.setContentType("application/json"); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, object); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java index 367ed5a2a9..cb41fd9203 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java @@ -20,7 +20,6 @@ */ package org.apache.qpid.server.management.plugin.servlet.rest; -import java.io.BufferedWriter; import java.io.IOException; import java.io.Writer; import java.util.Enumeration; @@ -31,14 +30,15 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig; + import org.apache.qpid.server.management.plugin.servlet.rest.action.ListAccessControlProviderAttributes; import org.apache.qpid.server.management.plugin.servlet.rest.action.ListAuthenticationProviderAttributes; import org.apache.qpid.server.management.plugin.servlet.rest.action.ListBrokerAttribute; import org.apache.qpid.server.management.plugin.servlet.rest.action.ListGroupProviderAttributes; import org.apache.qpid.server.management.plugin.servlet.rest.action.ListTimeZones; import org.apache.qpid.server.model.Broker; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.SerializationConfig; public class HelperServlet extends AbstractServlet { @@ -122,7 +122,7 @@ public class HelperServlet extends AbstractServlet return; } response.setContentType("application/json"); - final Writer writer = new BufferedWriter(response.getWriter()); + final Writer writer = getOutputWriter(request, response); _mapper.writeValue(writer, output); response.setStatus(HttpServletResponse.SC_OK); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java index 8b88e51e9c..a7889e4890 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java @@ -18,7 +18,7 @@ package org.apache.qpid.server.management.plugin.servlet.rest; import java.io.IOException; -import java.io.PrintWriter; +import java.io.Writer; import java.util.Collections; import java.util.List; @@ -27,11 +27,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.LogManager; -import org.apache.qpid.server.management.plugin.log.LogFileDetails; -import org.apache.qpid.server.management.plugin.log.LogFileHelper; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig; +import org.apache.qpid.server.management.plugin.log.LogFileDetails; +import org.apache.qpid.server.management.plugin.log.LogFileHelper; + public class LogFileListingServlet extends AbstractServlet { private static final long serialVersionUID = 1L; @@ -56,7 +57,7 @@ public class LogFileListingServlet extends AbstractServlet response.setContentType("application/json"); response.setStatus(HttpServletResponse.SC_OK); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, logFiles); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java index 35523ddf0f..b9d58c8868 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java @@ -17,18 +17,21 @@ package org.apache.qpid.server.management.plugin.servlet.rest; import java.io.IOException; -import java.io.PrintWriter; +import java.io.Writer; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; + import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.qpid.server.logging.LogRecorder; + import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig; +import org.apache.qpid.server.logging.LogRecorder; + public class LogRecordsServlet extends AbstractServlet { private static final long serialVersionUID = 2L; @@ -77,7 +80,7 @@ public class LogRecordsServlet extends AbstractServlet } } - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request,response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, logRecords); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LoggedOnUserPreferencesServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LoggedOnUserPreferencesServlet.java index 29cc881be7..25d109ba29 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LoggedOnUserPreferencesServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LoggedOnUserPreferencesServlet.java @@ -33,11 +33,12 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.codehaus.jackson.map.ObjectMapper; + import org.apache.qpid.server.management.plugin.HttpManagementUtil; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.PreferencesProvider; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; -import org.codehaus.jackson.map.ObjectMapper; public class LoggedOnUserPreferencesServlet extends AbstractServlet { @@ -59,7 +60,7 @@ public class LoggedOnUserPreferencesServlet extends AbstractServlet { preferences = Collections.<String, Object>emptyMap(); } - sendJsonResponse(preferences, response); + sendJsonResponse(preferences, request, response); } /* @@ -88,7 +89,7 @@ public class LoggedOnUserPreferencesServlet extends AbstractServlet { preferences = Collections.<String, Object>emptyMap(); } - sendJsonResponse(preferences, response); + sendJsonResponse(preferences, request, response); } /* @@ -115,7 +116,7 @@ public class LoggedOnUserPreferencesServlet extends AbstractServlet { preferences = Collections.<String, Object>emptyMap(); } - sendJsonResponse(preferences, response); + sendJsonResponse(preferences, request, response); } private String getAuthenticatedUserName(HttpServletRequest request) diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java index ef33a240a9..db58e49eeb 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java @@ -60,7 +60,7 @@ public class MessageContentServlet extends AbstractServlet { response.setContentType(finder.getMimeType()); response.setContentLength((int) finder.getSize()); - response.getOutputStream().write(finder.getContent()); + getOutputStream(request, response).write(finder.getContent()); } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java index 8c77876e1a..8de74d189b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java @@ -18,7 +18,7 @@ package org.apache.qpid.server.management.plugin.servlet.rest; import java.io.IOException; -import java.io.PrintWriter; +import java.io.Writer; import java.security.AccessControlException; import java.util.ArrayList; import java.util.HashMap; @@ -85,7 +85,7 @@ public class MessageServlet extends AbstractServlet response.setDateHeader ("Expires", 0); response.setContentType("application/json"); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request,response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, messageFinder.getMessageObject()); @@ -119,7 +119,7 @@ public class MessageServlet extends AbstractServlet response.setHeader("Pragma","no-cache"); response.setDateHeader ("Expires", 0); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request,response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, messages); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java index 55c2bf6901..c84eb3200b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java @@ -20,7 +20,6 @@ */ package org.apache.qpid.server.management.plugin.servlet.rest; -import java.io.BufferedWriter; import java.io.IOException; import java.io.Writer; import java.util.Collection; @@ -69,7 +68,7 @@ public class MetaDataServlet extends AbstractServlet classToDataMap.put(clazz.getSimpleName(), processCategory(clazz)); } - final Writer writer = new BufferedWriter(response.getWriter()); + final Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, classToDataMap); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java index 57b3df8050..d96802cc8b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java @@ -16,7 +16,6 @@ */ package org.apache.qpid.server.management.plugin.servlet.rest; -import java.io.BufferedWriter; import java.io.IOException; import java.io.Writer; import java.security.AccessControlException; @@ -327,7 +326,7 @@ public class RestServlet extends AbstractServlet depth, actuals, includeSystemContext)); } - final Writer writer = new BufferedWriter(response.getWriter()); + Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, output); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java index 81d67caf96..3dcd4a3978 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java @@ -21,7 +21,7 @@ package org.apache.qpid.server.management.plugin.servlet.rest; import java.io.IOException; -import java.io.PrintWriter; +import java.io.Writer; import java.net.SocketAddress; import java.security.Principal; import java.security.SecureRandom; @@ -100,7 +100,7 @@ public class SaslServlet extends AbstractServlet outputObject.put("mechanisms", (Object) mechanisms); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); @@ -268,7 +268,7 @@ public class SaslServlet extends AbstractServlet Map<String, Object> outputObject = new LinkedHashMap<String, Object>(); outputObject.put("challenge", new String(Base64.encodeBase64(challenge))); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); @@ -290,7 +290,7 @@ public class SaslServlet extends AbstractServlet outputObject.put("id", id); outputObject.put("challenge", new String(Base64.encodeBase64(challenge))); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java index 907610c8d2..7508aa2d0b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java @@ -17,7 +17,7 @@ package org.apache.qpid.server.management.plugin.servlet.rest; import java.io.IOException; -import java.io.PrintWriter; +import java.io.Writer; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; @@ -55,7 +55,7 @@ public class StructureServlet extends AbstractServlet Map<String,Object> structure = generateStructure(getBroker(), Broker.class); - final PrintWriter writer = response.getWriter(); + final Writer writer = getOutputWriter(request, response); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); mapper.writeValue(writer, structure); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java index 01657b131d..b782022986 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java @@ -35,6 +35,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; + import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.PreferencesProvider; @@ -53,15 +54,15 @@ public class UserPreferencesServlet extends AbstractServlet String[] pathElements = getPathInfoElements(request); if (pathElements != null && pathElements.length > 1) { - getUserPreferences(pathElements[0], pathElements[1], response); + getUserPreferences(pathElements[0], pathElements[1], request, response); } else { - getUserList(pathElements, response); + getUserList(pathElements, request, response); } } - private void getUserPreferences(String authenticationProviderName, String userId, HttpServletResponse response) + private void getUserPreferences(String authenticationProviderName, String userId, HttpServletRequest request, HttpServletResponse response) throws IOException { try @@ -83,10 +84,10 @@ public class UserPreferencesServlet extends AbstractServlet } preferences = preferencesProvider.getPreferences(userId); - sendJsonResponse(preferences, response); + sendJsonResponse(preferences, request, response); } - private void getUserList(String[] pathElements, HttpServletResponse response) throws IOException + private void getUserList(String[] pathElements, HttpServletRequest request, HttpServletResponse response) throws IOException { List<Map<String, Object>> users = null; try @@ -98,7 +99,7 @@ public class UserPreferencesServlet extends AbstractServlet LOGGER.debug("Bad preferences request", e); response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage()); } - sendJsonResponse(users, response); + sendJsonResponse(users, request, response); } private PreferencesProvider getPreferencesProvider(String authenticationProviderName) |