From d0ae81fa0c506cfc5c4de8d6643852aa2fdd5185 Mon Sep 17 00:00:00 2001 From: James Muehlner Date: Tue, 9 Jul 2013 11:14:41 -0700 Subject: [PATCH] Ticket --- .../net/auth/mysql/MySQLAuthenticationProvider.java | 5 +++++ .../guacamole/net/basic/AuthenticatingHttpServlet.java | 10 ++++++++++ .../guacamole/net/basic/crud/connections/List.java | 3 +++ .../guacamole/net/basic/crud/permissions/List.java | 3 +++ .../guacamole/net/basic/crud/protocols/List.java | 3 +++ .../guacamole/net/basic/crud/users/List.java | 3 +++ 6 files changed, 27 insertions(+) diff --git a/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/MySQLAuthenticationProvider.java b/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/MySQLAuthenticationProvider.java index e872df0a0..fa328c4cd 100644 --- a/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/MySQLAuthenticationProvider.java +++ b/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/MySQLAuthenticationProvider.java @@ -117,6 +117,7 @@ public class MySQLAuthenticationProvider implements AuthenticationProvider { public MySQLAuthenticationProvider() throws GuacamoleException { final Properties myBatisProperties = new Properties(); + final Properties driverProperties = new Properties(); // Set the mysql properties for MyBatis. myBatisProperties.setProperty("mybatis.environment.id", "guacamole"); @@ -126,6 +127,7 @@ public class MySQLAuthenticationProvider implements AuthenticationProvider { myBatisProperties.setProperty("JDBC.username", GuacamoleProperties.getRequiredProperty(MySQLGuacamoleProperties.MYSQL_USERNAME)); myBatisProperties.setProperty("JDBC.password", GuacamoleProperties.getRequiredProperty(MySQLGuacamoleProperties.MYSQL_PASSWORD)); myBatisProperties.setProperty("JDBC.autoCommit", "false"); + driverProperties.setProperty("characterEncoding","UTF-8"); // Set up Guice injector. injector = Guice.createInjector( @@ -135,6 +137,9 @@ public class MySQLAuthenticationProvider implements AuthenticationProvider { @Override public void configure(Binder binder) { Names.bindProperties(binder, myBatisProperties); + binder.bind(Properties.class) + .annotatedWith(Names.named("JDBC.driverProperties")) + .toInstance(driverProperties); } }, diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/AuthenticatingHttpServlet.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/AuthenticatingHttpServlet.java index 8440fcb5c..bec7e0b49 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/AuthenticatingHttpServlet.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/AuthenticatingHttpServlet.java @@ -20,6 +20,7 @@ package net.sourceforge.guacamole.net.basic; */ import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.util.Collection; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -226,6 +227,15 @@ public abstract class AuthenticatingHttpServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + + // Set character encoding to UTF-8 if it's not already set + if(request.getCharacterEncoding() == null) { + try { + request.setCharacterEncoding("UTF-8"); + } catch (UnsupportedEncodingException exception) { + throw new ServletException(exception); + } + } HttpSession httpSession = request.getSession(true); diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java index 4286775a5..17d031488 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/connections/List.java @@ -92,6 +92,9 @@ public class List extends AuthenticatingHttpServlet { // Write XML content type response.setHeader("Content-Type", "text/xml"); + + // Set encoding + response.setCharacterEncoding("UTF-8"); // Get connection directory Directory directory = context.getConnectionDirectory(); diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java index 193a2d55c..ace0ba6ed 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/permissions/List.java @@ -101,6 +101,9 @@ public class List extends AuthenticatingHttpServlet { // Do not cache response.setHeader("Cache-Control", "no-cache"); + + // Set encoding + response.setCharacterEncoding("UTF-8"); // Write actual XML try { diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/protocols/List.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/protocols/List.java index efdc91320..38fdd7b17 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/protocols/List.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/protocols/List.java @@ -199,6 +199,9 @@ public class List extends AuthenticatingHttpServlet { // Do not cache response.setHeader("Cache-Control", "no-cache"); + + // Set encoding + response.setCharacterEncoding("UTF-8"); // Map of all available protocols Map protocols = new HashMap(); diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/List.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/List.java index d0b39b081..15c0a3137 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/List.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/crud/users/List.java @@ -50,6 +50,9 @@ public class List extends AuthenticatingHttpServlet { // Write XML content type response.setHeader("Content-Type", "text/xml"); + + // Set encoding + response.setCharacterEncoding("UTF-8"); // Write actual XML try {