From 6f81584aedfc3fa9b25d2a89f2781c7f846fcc14 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 27 Oct 2014 13:03:20 -0700 Subject: [PATCH] GUAC-909: Log full exceptions only in debug level. Rephrase log messages. --- .../servlet/GuacamoleHTTPTunnelServlet.java | 5 +++-- .../websocket/GuacamoleWebSocketTunnelEndpoint.java | 8 +++++--- .../guacamole/net/basic/AuthenticatingFilter.java | 8 +++++--- .../net/basic/BasicTunnelRequestUtility.java | 3 ++- .../guacamole/net/basic/RestrictedHttpServlet.java | 3 ++- .../guacamole/net/basic/crud/protocols/List.java | 3 ++- .../net/basic/websocket/WebSocketSupportLoader.java | 12 ++++++++---- .../jetty8/GuacamoleWebSocketTunnelServlet.java | 6 ++++-- .../jetty9/GuacamoleWebSocketTunnelListener.java | 8 +++++--- .../tomcat/GuacamoleWebSocketTunnelServlet.java | 6 ++++-- 10 files changed, 40 insertions(+), 22 deletions(-) diff --git a/guacamole-common/src/main/java/org/glyptodon/guacamole/servlet/GuacamoleHTTPTunnelServlet.java b/guacamole-common/src/main/java/org/glyptodon/guacamole/servlet/GuacamoleHTTPTunnelServlet.java index 7539793d2..61e4dcd32 100644 --- a/guacamole-common/src/main/java/org/glyptodon/guacamole/servlet/GuacamoleHTTPTunnelServlet.java +++ b/guacamole-common/src/main/java/org/glyptodon/guacamole/servlet/GuacamoleHTTPTunnelServlet.java @@ -206,11 +206,12 @@ public abstract class GuacamoleHTTPTunnelServlet extends HttpServlet { // Catch any thrown guacamole exception and attempt to pass within the // HTTP response, logging each error appropriately. catch (GuacamoleClientException e) { - logger.warn("Client request rejected: {}", e.getMessage()); + logger.warn("HTTP tunnel request rejected: {}", e.getMessage()); sendError(response, e.getStatus(), e.getMessage()); } catch (GuacamoleException e) { - logger.error("Internal server error.", e); + logger.error("HTTP tunnel request failed: {}", e.getMessage()); + logger.debug("Internal error in HTTP tunnel.", e); sendError(response, e.getStatus(), "Internal server error."); } diff --git a/guacamole-common/src/main/java/org/glyptodon/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java b/guacamole-common/src/main/java/org/glyptodon/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java index e176c96f9..2960492f2 100644 --- a/guacamole-common/src/main/java/org/glyptodon/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java +++ b/guacamole-common/src/main/java/org/glyptodon/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java @@ -84,7 +84,7 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { session.close(new CloseReason(code, message)); } catch (IOException e) { - logger.error("Unable to close WebSocket connection.", e); + logger.debug("Unable to close WebSocket connection.", e); } } @@ -119,7 +119,8 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { } catch (GuacamoleException e) { - logger.error("Error connecting WebSocket tunnel.", e); + logger.error("Connection failed: {}", e.getMessage()); + logger.debug("Error connecting WebSocket tunnel.", e); closeConnection(session, e.getStatus()); return; } @@ -184,7 +185,8 @@ public abstract class GuacamoleWebSocketTunnelEndpoint extends Endpoint { closeConnection(session, GuacamoleStatus.SUCCESS); } catch (GuacamoleException e) { - logger.error("Internal server error.", e); + logger.error("Connection terminated abnormally: {}", e.getMessage()); + logger.debug("Internal error during connection.", e); closeConnection(session, e.getStatus()); } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/AuthenticatingFilter.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/AuthenticatingFilter.java index 584c2ca38..c4ab146db 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/AuthenticatingFilter.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/AuthenticatingFilter.java @@ -115,7 +115,8 @@ public class AuthenticatingFilter implements Filter { } catch (GuacamoleException e) { - logger.error("Error reading Guacamole configuration.", e); + logger.error("Unable to read Guacamole configuration: {}", e.getMessage()); + logger.debug("Error reading Guacamole configuration.", e); throw new ServletException(e); } @@ -141,7 +142,7 @@ public class AuthenticatingFilter implements Filter { ((AuthenticationFailureListener) listener).authenticationFailed(event); } catch (GuacamoleException e) { - logger.error("Error notifying AuthenticationFailureListener.", e); + logger.debug("Error notifying AuthenticationFailureListener: {}", e); } } @@ -382,7 +383,8 @@ public class AuthenticatingFilter implements Filter { sendError(response, e.getStatus(), e.getMessage()); } catch (GuacamoleException e) { - logger.error("Internal server error.", e); + logger.error("Authentication failed internally: {}", e.getMessage()); + logger.debug("Internal server error.", e); sendError(response, e.getStatus(), "Internal server error."); } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/BasicTunnelRequestUtility.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/BasicTunnelRequestUtility.java index f102d073b..28e639951 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/BasicTunnelRequestUtility.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/BasicTunnelRequestUtility.java @@ -164,7 +164,8 @@ public class BasicTunnelRequestUtility { listeners = new SessionListenerCollection(httpSession); } catch (GuacamoleException e) { - logger.error("Failed to retrieve listeners. Authentication canceled.", e); + logger.error("Authentication canceled: failed to retrieve listeners: {}", e.getMessage()); + logger.debug("Error retrieving listeners.", e); throw e; } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/RestrictedHttpServlet.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/RestrictedHttpServlet.java index a4978a3de..f6b262f33 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/RestrictedHttpServlet.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/RestrictedHttpServlet.java @@ -126,7 +126,8 @@ public abstract class RestrictedHttpServlet extends HttpServlet { sendError(response, e.getStatus(), e.getMessage()); } catch (GuacamoleException e) { - logger.error("Internal server error.", e); + logger.error("Request failed: {}", e.getMessage()); + logger.debug("Internal server error.", e); sendError(response, e.getStatus(), "Internal server error."); } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/protocols/List.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/protocols/List.java index 008780b4b..d18f6ddef 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/protocols/List.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/protocols/List.java @@ -249,7 +249,8 @@ public class List extends RestrictedHttpServlet { } catch (IOException e) { - logger.error("Unable to read protocol XML.", e); + logger.error("Unable to read \"{}\": {}", file.getAbsolutePath(), e.getMessage()); + logger.debug("Error reading protocol XML.", e); } } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/WebSocketSupportLoader.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/WebSocketSupportLoader.java index c6f2bc3d7..1caa0ad68 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/WebSocketSupportLoader.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/WebSocketSupportLoader.java @@ -85,7 +85,8 @@ public class WebSocketSupportLoader implements ServletContextListener { // Log all GuacamoleExceptions catch (GuacamoleException e) { - logger.error("Unable to load/detect WebSocket support.", e); + logger.error("Unable to load/detect WebSocket support: {}", e.getMessage()); + logger.debug("Error loading/detecting WebSocket support.", e); } // JSR 356 not found @@ -132,10 +133,12 @@ public class WebSocketSupportLoader implements ServletContextListener { // Servlet API 3.0 found, but errors during use catch (IllegalAccessException e) { - logger.error("Unable to load WebSocket tunnel servlet.", e); + logger.error("Unable to load WebSocket tunnel servlet: {}", e.getMessage()); + logger.debug("Error loading WebSocket tunnel servlet.", e); } catch (InvocationTargetException e) { - logger.error("Internal error loading WebSocket tunnel servlet.", e); + logger.error("Unable to load WebSocket tunnel servlet: {}", e.getMessage()); + logger.debug("Error loading WebSocket tunnel servlet.", e); } } @@ -147,7 +150,8 @@ public class WebSocketSupportLoader implements ServletContextListener { // Log all GuacamoleExceptions catch (GuacamoleException e) { - logger.error("Unable to load/detect WebSocket support.", e); + logger.error("Unable to load/detect WebSocket support: {}", e.getMessage()); + logger.debug("Error loading/detecting WebSocket support.", e); } // Load attempt failed diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java index f22ba199e..17858dce4 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty8/GuacamoleWebSocketTunnelServlet.java @@ -79,7 +79,8 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { tunnel = doConnect(request); } catch (GuacamoleException e) { - logger.error("Error connecting WebSocket tunnel.", e); + logger.error("Connection failed: {}", e.getMessage()); + logger.debug("Error connecting WebSocket tunnel.", e); return null; } @@ -157,7 +158,8 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { closeConnection(connection, GuacamoleStatus.SUCCESS); } catch (GuacamoleException e) { - logger.error("Internal server error.", e); + logger.error("Connection terminated abnormally: {}", e.getMessage()); + logger.debug("Internal error during connection.", e); closeConnection(connection, e.getStatus()); } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty9/GuacamoleWebSocketTunnelListener.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty9/GuacamoleWebSocketTunnelListener.java index 896fcfbfb..4f6f1c951 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty9/GuacamoleWebSocketTunnelListener.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty9/GuacamoleWebSocketTunnelListener.java @@ -75,7 +75,7 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe session.close(new CloseStatus(code, message)); } catch (IOException e) { - logger.error("Unable to close WebSocket connection.", e); + logger.debug("Unable to close WebSocket connection.", e); } } @@ -107,7 +107,8 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe } catch (GuacamoleException e) { - logger.error("Error connecting WebSocket tunnel.", e); + logger.error("Connection failed: {}", e.getMessage()); + logger.debug("Error connecting WebSocket tunnel.", e); closeConnection(session, e.getStatus()); return; } @@ -170,7 +171,8 @@ public abstract class GuacamoleWebSocketTunnelListener implements WebSocketListe closeConnection(session, GuacamoleStatus.SUCCESS); } catch (GuacamoleException e) { - logger.error("Internal server error.", e); + logger.error("Connection terminated abnormally: {}", e.getMessage()); + logger.debug("Internal error during connection.", e); closeConnection(session, e.getStatus()); } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java index 3b542b2ed..3d527a70b 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/tomcat/GuacamoleWebSocketTunnelServlet.java @@ -99,7 +99,8 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { tunnel = doConnect(request); } catch (GuacamoleException e) { - logger.error("Error connecting WebSocket tunnel.", e); + logger.error("Connection failed: {}", e.getMessage()); + logger.debug("Error connecting WebSocket tunnel.", e); return null; } @@ -189,7 +190,8 @@ public abstract class GuacamoleWebSocketTunnelServlet extends WebSocketServlet { closeConnection(outbound, GuacamoleStatus.SUCCESS); } catch (GuacamoleException e) { - logger.error("Internal server error.", e); + logger.error("Connection terminated abnormally: {}", e.getMessage()); + logger.debug("Internal error during connection.", e); closeConnection(outbound, e.getStatus()); }