Alon Bar-Lev has uploaded a new change for review. Change subject: compat: remove unsafe and unneeded Encoding class ......................................................................
compat: remove unsafe and unneeded Encoding class Left over from legacy code. Base64 usage is thread unsafe. String usage is not required. Change-Id: Ie7a540d9c69b55ce8431839c1164927024161d30 Signed-off-by: Alon Bar-Lev <alo...@redhat.com> --- M backend/manager/modules/compat/pom.xml D backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/Encoding.java M backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/backendcompat/XmlTextWriter.java D backend/manager/modules/compat/src/test/java/org/ovirt/engine/core/compat/EncodingTest.java M backend/manager/modules/engineencryptutils/pom.xml M backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/engineencryptutils/EncryptionUtils.java M backend/manager/modules/utils/pom.xml M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/Ticketing.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java 9 files changed, 23 insertions(+), 110 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/11531/1 diff --git a/backend/manager/modules/compat/pom.xml b/backend/manager/modules/compat/pom.xml index cbe0fde..406ebed 100644 --- a/backend/manager/modules/compat/pom.xml +++ b/backend/manager/modules/compat/pom.xml @@ -12,13 +12,6 @@ <name>CSharp Compatibility</name> - <dependencies> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - </dependency> - </dependencies> - <build> <plugins> <plugin> diff --git a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/Encoding.java b/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/Encoding.java deleted file mode 100644 index 480abf0..0000000 --- a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/Encoding.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.ovirt.engine.core.compat; - -import java.nio.charset.Charset; - -import org.apache.commons.codec.binary.Base64; - -public enum Encoding { - ASCII("US-ASCII"), - UTF8("UTF-8"), - Unicode("UTF-16"), - Base64("Base64"); - - private Charset charset; - private Base64 codec; - - private Encoding(String encoding) { - if ("Base64".equals(encoding)) { - codec = new Base64(); - } else { - charset = Charset.forName(encoding); - } - } - - public byte[] getBytes(String plainText) { - if (this != Base64) { - return plainText.getBytes(charset); - } else { - try { - return codec.decode(plainText.getBytes("US-ASCII")); - } catch (Exception e) { - throw new CompatException(e); - } - } - } - - public String getString(byte[] decrypt) { - if (this != Base64) { - try { - return new String(decrypt, charset.displayName()); - } catch (Exception e) { - throw new CompatException(e); - } - } else { - return new String(codec.encode(decrypt)).trim(); - } - } -} diff --git a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/backendcompat/XmlTextWriter.java b/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/backendcompat/XmlTextWriter.java index 9e62815..d5ae4e0 100644 --- a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/backendcompat/XmlTextWriter.java +++ b/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/backendcompat/XmlTextWriter.java @@ -8,8 +8,6 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; -import org.ovirt.engine.core.compat.Encoding; - public class XmlTextWriter { public Object Formatting; @@ -17,7 +15,7 @@ XMLStreamWriter writer; - public XmlTextWriter(String name, Encoding utf8) { + public XmlTextWriter(String name) { try { XMLOutputFactory factory = XMLOutputFactory.newInstance(); writer = factory.createXMLStreamWriter(new FileOutputStream(name), "UTF-8"); diff --git a/backend/manager/modules/compat/src/test/java/org/ovirt/engine/core/compat/EncodingTest.java b/backend/manager/modules/compat/src/test/java/org/ovirt/engine/core/compat/EncodingTest.java deleted file mode 100644 index f7cb2a9..0000000 --- a/backend/manager/modules/compat/src/test/java/org/ovirt/engine/core/compat/EncodingTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.ovirt.engine.core.compat; - -import java.io.UnsupportedEncodingException; - -import junit.framework.TestCase; - -public class EncodingTest extends TestCase { - public void testAscii() { - Encoding enc = Encoding.ASCII; - final String source = "8278473247 237429 3i21h31uyt4 3 \t \n"; - byte[] bytes = enc.getBytes(source); - assertEquals(source, enc.getString(bytes)); - } - - public void testUTF8() { - Encoding enc = Encoding.UTF8; - final String source = "8278473247 237429 3i21h31uyt4 3 \t \n"; - byte[] bytes = enc.getBytes(source); - assertEquals(source, enc.getString(bytes)); - } - - public void testBothWithBytes() { - Encoding enc = Encoding.Base64; - final String source = "dlkjslfjds reiwur 3\t \n dskjlfsjd lkjs lkfj"; - String base64String = enc.getString(source.getBytes()); - assertEquals(source, new String(enc.getBytes(base64String))); - } - - public void testFrom64() { - Encoding enc = Encoding.Base64; - assertEquals("My name is Jar Jar Binks.", - new String(enc.getBytes("TXkgbmFtZSBpcyBKYXIgSmFyIEJpbmtzLg=="))); - } - - public void testTo64() throws UnsupportedEncodingException { - Encoding enc = Encoding.Base64; - final byte[] byteArray = "My name is Jar Jar Binks.".getBytes(); - assertEquals("TXkgbmFtZSBpcyBKYXIgSmFyIEJpbmtzLg==", enc.getString(byteArray)); - } -} diff --git a/backend/manager/modules/engineencryptutils/pom.xml b/backend/manager/modules/engineencryptutils/pom.xml index 20b7821..27d5a86 100644 --- a/backend/manager/modules/engineencryptutils/pom.xml +++ b/backend/manager/modules/engineencryptutils/pom.xml @@ -14,6 +14,10 @@ <dependencies> <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + </dependency> + <dependency> <groupId>${engine.groupId}</groupId> <artifactId>compat</artifactId> <version>${engine.version}</version> diff --git a/backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/engineencryptutils/EncryptionUtils.java b/backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/engineencryptutils/EncryptionUtils.java index 6cf8d10..f0b83d1 100644 --- a/backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/engineencryptutils/EncryptionUtils.java +++ b/backend/manager/modules/engineencryptutils/src/main/java/org/ovirt/engine/core/engineencryptutils/EncryptionUtils.java @@ -4,6 +4,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.GeneralSecurityException; import java.security.InvalidKeyException; @@ -19,9 +20,9 @@ import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; +import org.apache.commons.codec.binary.Base64; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.ovirt.engine.core.compat.Encoding; import org.ovirt.engine.core.compat.RefObject; import org.ovirt.engine.core.compat.StringHelper; @@ -39,13 +40,13 @@ * The cert. * @return base64 encoded result. */ - private static String encrypt(String source, Certificate cert) throws GeneralSecurityException { + private static String encrypt(String source, Certificate cert) throws GeneralSecurityException, UnsupportedEncodingException { String result = null; - byte[] cipherbytes = Encoding.UTF8.getBytes(source.trim()); + byte[] cipherbytes = source.trim().getBytes("UTF-8"); Cipher rsa = Cipher.getInstance(algo); rsa.init(Cipher.ENCRYPT_MODE, cert.getPublicKey()); byte[] cipher = rsa.doFinal(cipherbytes); - result = Encoding.Base64.getString(cipher); + result = Base64.encodeBase64String(cipher); return result; } @@ -65,13 +66,13 @@ String result = ""; try { { - byte[] cipherbytes = Encoding.Base64.getBytes(source); + byte[] cipherbytes = Base64.decodeBase64(source); { Cipher rsa = Cipher.getInstance(algo); rsa.init(Cipher.DECRYPT_MODE, key); { byte[] plainbytes = rsa.doFinal(cipherbytes); - result = Encoding.ASCII.getString(plainbytes); + result = new String(plainbytes, "US-ASCII"); } } } @@ -149,13 +150,13 @@ } private static String decrypt(String source, Key key) throws NoSuchAlgorithmException, NoSuchPaddingException, - InvalidKeyException, IllegalBlockSizeException, BadPaddingException { + InvalidKeyException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException { String result = ""; - byte[] cipherbytes = Encoding.Base64.getBytes(source); + byte[] cipherbytes = Base64.decodeBase64(source); Cipher rsa = Cipher.getInstance(algo); rsa.init(Cipher.DECRYPT_MODE, key); byte[] plainbytes = rsa.doFinal(cipherbytes); - result = Encoding.UTF8.getString(plainbytes); + result = new String(plainbytes, "UTF-8"); return result; } diff --git a/backend/manager/modules/utils/pom.xml b/backend/manager/modules/utils/pom.xml index 7509de3..014f0d6 100644 --- a/backend/manager/modules/utils/pom.xml +++ b/backend/manager/modules/utils/pom.xml @@ -93,6 +93,11 @@ </dependency> <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + </dependency> + + <dependency> <groupId>org.apache.xmlrpc</groupId> <artifactId>xmlrpc-client</artifactId> </dependency> diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/Ticketing.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/Ticketing.java index 4742c99..d9a1ca2 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/Ticketing.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/Ticketing.java @@ -2,7 +2,7 @@ import java.security.SecureRandom; -import org.ovirt.engine.core.compat.Encoding; +import org.apache.commons.codec.binary.Base64; public final class Ticketing { public static String GenerateOTP() { @@ -10,6 +10,6 @@ byte[] arrRandom = new byte[9]; secr.nextBytes(arrRandom); // encode password into Base64 text: - return Encoding.Base64.getString(arrRandom); + return Base64.encodeBase64String(arrRandom); } } diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java index 1442b02..e30e0d1 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java @@ -15,7 +15,6 @@ import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.utils.VmDeviceCommonUtils; import org.ovirt.engine.core.common.utils.VmDeviceType; -import org.ovirt.engine.core.compat.Encoding; import org.ovirt.engine.core.compat.Formatting; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.StringHelper; @@ -36,7 +35,7 @@ _fileName = Path.GetTempFileName(); _document = document; _images = images; - _writer = new XmlTextWriter(_fileName, Encoding.UTF8); + _writer = new XmlTextWriter(_fileName); this.vmBase = vmBase; WriteHeader(); } -- To view, visit http://gerrit.ovirt.org/11531 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie7a540d9c69b55ce8431839c1164927024161d30 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: engine_3.2 Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches