Mercurial > hg > release > thermostat-0.11
changeset 836:2bd8ed8f18c7
Fix Eclipse build by lowering commons-codec version
The Eclipse build is currently broken due to the new dependency on
commons-codec in web-client. The version initially specified was 1.7,
but Eclipse only has access to 1.3 in its repos. This commit changes the
Thermostat build to use version 1.3. The version of commons-codec 1.3 on
Maven Central doesn't have OSGi metadata, so I have switched to the
Apache Servicemix package. Also some of the API used throughout
Thermostat isn't present in 1.3, but this new API is for convenience. I
have added some UTF-8 translating functions to StringUtils that mimic
the behaviour of these new methods.
Reviewed-by: vanaltj
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-December/004519.html
author | Elliott Baron <ebaron@redhat.com> |
---|---|
date | Mon, 10 Dec 2012 16:45:55 -0500 |
parents | 5d0ca9f27097 |
children | 15bdfbd07f48 |
files | agent/command/pom.xml agent/command/src/main/java/com/redhat/thermostat/agent/command/internal/ServerHandler.java client/command/pom.xml client/command/src/main/java/com/redhat/thermostat/client/command/internal/RequestQueueImpl.java common/core/src/main/java/com/redhat/thermostat/common/utils/StringUtils.java pom.xml web/client/pom.xml web/server/pom.xml web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java web/server/src/test/java/com/redhat/thermostat/web/server/WebStorageEndpointTest.java |
diffstat | 10 files changed, 43 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/agent/command/pom.xml Mon Dec 10 10:24:20 2012 -0500 +++ b/agent/command/pom.xml Mon Dec 10 16:45:55 2012 -0500 @@ -81,8 +81,8 @@ </dependency> <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> + <groupId>org.apache.servicemix.bundles</groupId> + <artifactId>org.apache.servicemix.bundles.commons-codec</artifactId> <version>${commons-codec.version}</version> </dependency>
--- a/agent/command/src/main/java/com/redhat/thermostat/agent/command/internal/ServerHandler.java Mon Dec 10 10:24:20 2012 -0500 +++ b/agent/command/src/main/java/com/redhat/thermostat/agent/command/internal/ServerHandler.java Mon Dec 10 16:45:55 2012 -0500 @@ -54,10 +54,10 @@ import com.redhat.thermostat.agent.command.ReceiverRegistry; import com.redhat.thermostat.agent.command.RequestReceiver; import com.redhat.thermostat.common.command.Request; -import com.redhat.thermostat.common.command.Request.RequestType; import com.redhat.thermostat.common.command.Response; import com.redhat.thermostat.common.command.Response.ResponseType; import com.redhat.thermostat.common.utils.LoggingUtils; +import com.redhat.thermostat.common.utils.StringUtils; import com.redhat.thermostat.storage.core.AuthToken; import com.redhat.thermostat.storage.core.SecureStorage; import com.redhat.thermostat.storage.core.Storage; @@ -112,9 +112,9 @@ private boolean authenticateRequest(Request request, SecureStorage storage) { String clientTokenStr = request.getParameter(Request.CLIENT_TOKEN); - byte[] clientToken = Base64.decodeBase64(clientTokenStr); + byte[] clientToken = Base64.decodeBase64(StringUtils.fromUtf8String((clientTokenStr))); String authTokenStr = request.getParameter(Request.AUTH_TOKEN); - byte[] authToken = Base64.decodeBase64(authTokenStr); + byte[] authToken = Base64.decodeBase64(StringUtils.fromUtf8String((authTokenStr))); AuthToken token = new AuthToken(authToken, clientToken); return storage.verifyToken(token); } @@ -124,5 +124,5 @@ logger.log(Level.WARNING, "Unexpected exception from downstream.", e.getCause()); e.getChannel().close(); } - + }
--- a/client/command/pom.xml Mon Dec 10 10:24:20 2012 -0500 +++ b/client/command/pom.xml Mon Dec 10 16:45:55 2012 -0500 @@ -72,8 +72,8 @@ </dependency> <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> + <groupId>org.apache.servicemix.bundles</groupId> + <artifactId>org.apache.servicemix.bundles.commons-codec</artifactId> <version>${commons-codec.version}</version> </dependency> <dependency>
--- a/client/command/src/main/java/com/redhat/thermostat/client/command/internal/RequestQueueImpl.java Mon Dec 10 10:24:20 2012 -0500 +++ b/client/command/src/main/java/com/redhat/thermostat/client/command/internal/RequestQueueImpl.java Mon Dec 10 16:45:55 2012 -0500 @@ -52,6 +52,7 @@ import com.redhat.thermostat.common.command.RequestResponseListener; import com.redhat.thermostat.common.command.Response; import com.redhat.thermostat.common.command.Response.ResponseType; +import com.redhat.thermostat.common.utils.StringUtils; import com.redhat.thermostat.storage.core.AuthToken; import com.redhat.thermostat.storage.core.SecureStorage; import com.redhat.thermostat.storage.core.Storage; @@ -88,8 +89,8 @@ private void authenticateRequest(Request request, SecureStorage storage) { try { AuthToken token = storage.generateToken(); - request.setParameter(Request.CLIENT_TOKEN, Base64.encodeBase64String(token.getClientToken())); - request.setParameter(Request.AUTH_TOKEN, Base64.encodeBase64String(token.getToken())); + request.setParameter(Request.CLIENT_TOKEN, StringUtils.toUtf8String(Base64.encodeBase64Chunked(token.getClientToken()))); + request.setParameter(Request.AUTH_TOKEN, StringUtils.toUtf8String(Base64.encodeBase64Chunked(token.getToken()))); } catch (StorageException ex) { fireComplete(request, new Response(ResponseType.AUTH_FAILED)); } @@ -153,4 +154,5 @@ listener.fireComplete(request, response); } } + }
--- a/common/core/src/main/java/com/redhat/thermostat/common/utils/StringUtils.java Mon Dec 10 10:24:20 2012 -0500 +++ b/common/core/src/main/java/com/redhat/thermostat/common/utils/StringUtils.java Mon Dec 10 16:45:55 2012 -0500 @@ -39,6 +39,7 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; public class StringUtils { @@ -65,5 +66,13 @@ } return builder.toString(); } + + public static String toUtf8String(byte[] data) { + return new String(data, Charset.forName("UTF-8")); + } + + public static byte[] fromUtf8String(String str) { + return str.getBytes(Charset.forName("UTF-8")); + } }
--- a/pom.xml Mon Dec 10 10:24:20 2012 -0500 +++ b/pom.xml Mon Dec 10 16:45:55 2012 -0500 @@ -76,7 +76,7 @@ <commons-io.version>2.4</commons-io.version> <commons-collections.version>3.2.1</commons-collections.version> <commons-logging.version>1.1.1</commons-logging.version> - <commons-codec.version>1.7</commons-codec.version> + <commons-codec.version>1.3_5</commons-codec.version> <jline.version>2.9</jline.version> <lucene.version>3.6.0_1</lucene.version>
--- a/web/client/pom.xml Mon Dec 10 10:24:20 2012 -0500 +++ b/web/client/pom.xml Mon Dec 10 16:45:55 2012 -0500 @@ -110,6 +110,11 @@ <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.servicemix.bundles</groupId> + <artifactId>org.apache.servicemix.bundles.commons-codec</artifactId> + <version>${commons-codec.version}</version> + </dependency> </dependencies> <build> @@ -126,6 +131,8 @@ <Private-Package> com.redhat.thermostat.web.client.internal </Private-Package> + <!-- Eclipse needs v1.3 --> + <Import-Package>org.apache.commons.codec.*;version="[1.3,2)",*</Import-Package> <!-- Do not autogenerate uses clauses in Manifests --> <_nouses>true</_nouses> </instructions>
--- a/web/server/pom.xml Mon Dec 10 10:24:20 2012 -0500 +++ b/web/server/pom.xml Mon Dec 10 16:45:55 2012 -0500 @@ -106,8 +106,8 @@ <version>${commons-io.version}</version> </dependency> <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> + <groupId>org.apache.servicemix.bundles</groupId> + <artifactId>org.apache.servicemix.bundles.commons-codec</artifactId> <version>${commons-codec.version}</version> </dependency>
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java Mon Dec 10 10:24:20 2012 -0500 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java Mon Dec 10 16:45:55 2012 -0500 @@ -61,6 +61,7 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonParser; +import com.redhat.thermostat.common.utils.StringUtils; import com.redhat.thermostat.storage.core.AbstractQuery.Sort; import com.redhat.thermostat.storage.core.Category; import com.redhat.thermostat.storage.core.Cursor; @@ -394,7 +395,7 @@ TokenManager tokenManager = (TokenManager) getServletContext().getAttribute(TOKEN_MANAGER_KEY); assert tokenManager != null; String clientToken = req.getParameter("client-token"); - byte[] token = Base64.decodeBase64(req.getParameter("token")); + byte[] token = Base64.decodeBase64(StringUtils.fromUtf8String(req.getParameter("token"))); boolean verified = tokenManager.verifyToken(clientToken, token); if (! verified) { resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/WebStorageEndpointTest.java Mon Dec 10 10:24:20 2012 -0500 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/WebStorageEndpointTest.java Mon Dec 10 16:45:55 2012 -0500 @@ -76,6 +76,7 @@ import sun.misc.BASE64Encoder; import com.google.gson.Gson; +import com.redhat.thermostat.common.utils.StringUtils; import com.redhat.thermostat.storage.core.Categories; import com.redhat.thermostat.storage.core.Category; import com.redhat.thermostat.storage.core.Cursor; @@ -560,7 +561,9 @@ conn.setDoOutput(true); conn.setDoInput(true); OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream()); - out.write("client-token=fluff&token=" + URLEncoder.encode(Base64.encodeBase64String(token), "UTF-8")); + out.write("client-token=fluff&token=" + + URLEncoder.encode(StringUtils.toUtf8String(Base64 + .encodeBase64Chunked(token)), "UTF-8")); out.flush(); assertEquals(200, conn.getResponseCode()); } @@ -582,7 +585,9 @@ conn.setDoOutput(true); conn.setDoInput(true); OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream()); - out.write("client-token=fluff&token=" + URLEncoder.encode(Base64.encodeBase64String(token), "UTF-8")); + out.write("client-token=fluff&token=" + + URLEncoder.encode(StringUtils.toUtf8String(Base64 + .encodeBase64Chunked(token)), "UTF-8")); out.flush(); assertEquals(401, conn.getResponseCode()); } @@ -602,7 +607,9 @@ conn.setDoOutput(true); conn.setDoInput(true); OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream()); - out.write("client-token=fluff&token=" + URLEncoder.encode(Base64.encodeBase64String(token), "UTF-8")); + out.write("client-token=fluff&token=" + + URLEncoder.encode(StringUtils.toUtf8String(Base64 + .encodeBase64Chunked(token)), "UTF-8")); out.flush(); assertEquals(401, conn.getResponseCode()); }