diff options
Diffstat (limited to 'qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest')
12 files changed, 61 insertions, 42 deletions
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) |