Do not use javax.bind in encrypt-service 02/97102/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 9 Aug 2021 10:30:08 +0000 (12:30 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 9 Aug 2021 10:30:08 +0000 (12:30 +0200)
We have a proper Base64 encoder/decoder in java.util, use that instead
of javax.xml.bind.DatatypeConverter. This allows us to ditch a dependency
on javax.xml.bind completely.

Change-Id: Ia6d8aec4cf37ea39b12b8a6c7e233b1f932587e4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
aaa-encrypt-service/impl/pom.xml
aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptionServiceImpl.java
features/odl-aaa-encryption-service/pom.xml
features/odl-aaa-encryption-service/src/main/feature/feature.xml

index 7f8986c212dc836bc2b8b92326b1f6fad8d9d6c0..16e93d2b6c3b871f6765ab953a9361668dc61c57 100644 (file)
@@ -34,10 +34,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
     </dependency>
-    <dependency>
-      <groupId>jakarta.xml.bind</groupId>
-      <artifactId>jakarta.xml.bind-api</artifactId>
-    </dependency>
   </dependencies>
 
   <build>
index f7fbf81b40438d960b6626b736e38c535102403c..045a8268ee7f71ce828945f72aab4bec3ed7e55d 100644 (file)
@@ -27,7 +27,6 @@ import javax.crypto.SecretKeyFactory;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.PBEKeySpec;
 import javax.crypto.spec.SecretKeySpec;
-import javax.xml.bind.DatatypeConverter;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -136,7 +135,7 @@ public class AAAEncryptionServiceImpl implements AAAEncryptionService {
             LOG.error("Failed to encrypt data.", e);
             return data;
         }
-        return DatatypeConverter.printBase64Binary(cryptobytes);
+        return Base64.getEncoder().encodeToString(cryptobytes);
     }
 
     @Override
@@ -163,14 +162,16 @@ public class AAAEncryptionServiceImpl implements AAAEncryptionService {
             LOG.warn("String {} was not decrypted.", encryptedData);
             return encryptedData;
         }
+
+        final byte[] cryptobytes = Base64.getDecoder().decode(encryptedData);
+        final byte[] clearbytes;
         try {
-            byte[] cryptobytes = DatatypeConverter.parseBase64Binary(encryptedData);
-            byte[] clearbytes = decryptCipher.doFinal(cryptobytes);
-            return new String(clearbytes, Charset.defaultCharset());
+            clearbytes = decryptCipher.doFinal(cryptobytes);
         } catch (IllegalBlockSizeException | BadPaddingException e) {
             LOG.error("Failed to decrypt encoded data", e);
+            return encryptedData;
         }
-        return encryptedData;
+        return new String(clearbytes, Charset.defaultCharset());
     }
 
     @Override
index 01756d81e0c99b569602222aae4a8ee99d6c67b6..1c7284d636e3a67c49c186ab84565002b770a9a4 100644 (file)
     </dependencyManagement>
 
     <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl-jakarta-activation-api</artifactId>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-
         <!-- MD-SAL -->
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
index fd1d0a736fc9b19f156706025ce86cab2bb2f0cd..899a99b961a8c41727bf013541d3821632c01094 100644 (file)
@@ -8,7 +8,6 @@
  -->
 <features name="odl-aaa-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0">
     <feature name="odl-aaa-encryption-service" version="${project.version}">
-        <feature version="[9,10)">odl-jakarta-activation-api</feature>
         <feature version="[4,5)">odl-mdsal-broker</feature>
         <configfile finalname="etc/opendaylight/datastore/initial/config/aaa-encrypt-service-config.xml">
             mvn:org.opendaylight.aaa/aaa-encrypt-service-impl/${project.version}/xml/config