Drop dependency on commons-text 73/103273/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 16 Nov 2022 17:28:58 +0000 (18:28 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 16 Nov 2022 17:55:32 +0000 (18:55 +0100)
Fix the final SQL injection issue in GrantStore, which means we no
longer need to escape strings. This allows us to drop dependency on
common-text and fixup a warning by mentioning guava in our dependencies.

Change-Id: I3665a42fd81c7e07ea708d352c784f2bb75a86ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit bdd04452563a1b375e02787d6821f0bf28205415)

aaa-idm-store-h2/pom.xml
aaa-idm-store-h2/src/main/java/org/opendaylight/aaa/datastore/h2/GrantStore.java

index 4094059b13be48e8796b84020b8402ef9cc0321e..424470b1d96c7de8f29278e661e5ce1d00a46fbd 100644 (file)
@@ -53,8 +53,8 @@
 
         <!-- External dependencies -->
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-text</artifactId>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
         </dependency>
         <dependency>
             <groupId>net.sf.ehcache</groupId>
index a4b7bac7a33ecde6abd56660f598ab5bddcbf384..1fd8b64eef716f21713e1e214b61f5de1c4c75fc 100644 (file)
@@ -8,13 +8,10 @@
 
 package org.opendaylight.aaa.datastore.h2;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Statement;
-import org.apache.commons.text.StringEscapeUtils;
 import org.opendaylight.aaa.api.IDMStoreUtil;
 import org.opendaylight.aaa.api.model.Grant;
 import org.opendaylight.aaa.api.model.Grants;
@@ -140,18 +137,17 @@ public class GrantStore extends AbstractStore<Grant> {
         }
     }
 
-    @SuppressFBWarnings("SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE")
-    protected Grant deleteGrant(String grantid) throws StoreException {
-        grantid = StringEscapeUtils.escapeHtml4(grantid);
+    protected Grant deleteGrant(final String grantid) throws StoreException {
         Grant savedGrant = this.getGrant(grantid);
         if (savedGrant == null) {
             return null;
         }
 
-        String query = String.format("DELETE FROM GRANTS WHERE grantid = '%s'", grantid);
+        String query = "DELETE FROM GRANTS WHERE grantid = ?";
         try (Connection conn = dbConnect();
-             Statement statement = conn.createStatement()) {
-            int deleteCount = statement.executeUpdate(query);
+             PreparedStatement statement = conn.prepareStatement(query)) {
+            statement.setString(1, grantid);
+            int deleteCount = statement.executeUpdate();
             LOG.debug("deleted {} records", deleteCount);
             return savedGrant;
         } catch (SQLException e) {