This is an automated email from the ASF dual-hosted git repository.
smolnar82 pushed a commit to branch knox_idf
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/knox_idf by this push:
new cb879e552 KNOX-3390 - Address comments in PR 1315 (#1320)
cb879e552 is described below
commit cb879e55273e0aac8e999704b1607ced9ec5ed07
Author: hsheinblatt <[email protected]>
AuthorDate: Thu Jul 23 02:48:43 2026 -0700
KNOX-3390 - Address comments in PR 1315 (#1320)
---
.../JdbcTrustedOidcIssuerService.java | 1 +
.../TrustedOidcIssuerDatabase.java | 10 ------
.../JdbcTrustedOidcIssuerServiceTest.java | 40 ++++++++++++++++++++++
pom.xml | 2 +-
4 files changed, 42 insertions(+), 11 deletions(-)
diff --git
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
index 0b1e0a31e..95246c080 100644
---
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
+++
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
@@ -195,6 +195,7 @@ public class JdbcTrustedOidcIssuerService implements
TrustedOidcIssuerService {
registrySnapshot.set(Collections.unmodifiableMap(fresh));
} catch (Exception e) {
LOG.errorReloadingRegistrySnapshot(e.getMessage(), e);
+ throw new RuntimeException("Error reloading trusted OIDC issuer registry
snapshot", e);
}
}
}
diff --git
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
index 92d0fd5c5..05b9d4f72 100644
---
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
+++
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
@@ -44,8 +44,6 @@ class TrustedOidcIssuerDatabase extends KnoxDatabase {
"DELETE FROM " + TABLE_NAME + " WHERE issuer_url = ?";
private static final String SELECT_ALL_SQL =
"SELECT issuer_url, dynamic_jwks, cluster_name, registered_at,
registered_by FROM " + TABLE_NAME;
- private static final String COUNT_SQL =
- "SELECT COUNT(*) FROM " + TABLE_NAME;
TrustedOidcIssuerDatabase(DataSource dataSource, String dbType) throws
Exception {
super(dataSource);
@@ -90,12 +88,4 @@ class TrustedOidcIssuerDatabase extends KnoxDatabase {
}
return result;
}
-
- int count() throws SQLException {
- try (Connection connection = dataSource.getConnection();
- PreparedStatement ps = connection.prepareStatement(COUNT_SQL);
- ResultSet rs = ps.executeQuery()) {
- return rs.next() ? rs.getInt(1) : 0;
- }
- }
}
diff --git
a/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
b/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
index 03bc54f76..9a7a9673f 100644
---
a/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
+++
b/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.knox.gateway.services.knoxidf.trustedoidcissuer;
+import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.config.impl.GatewayConfigImpl;
import org.apache.knox.gateway.database.AbstractDataSourceFactory;
@@ -279,6 +280,45 @@ public class JdbcTrustedOidcIssuerServiceTest {
service.refreshJwksUri("https://unknown.example.com"); // must not throw
}
+ // ------------------------------------------------------------------
+ // SQL exception error paths
+ // ------------------------------------------------------------------
+
+ @Test(expected = RuntimeException.class)
+ public void testDeregisterSqlExceptionOnDeleteThrowsRuntimeException()
throws Exception {
+ final TrustedOidcIssuerDatabase mockDb =
EasyMock.createMock(TrustedOidcIssuerDatabase.class);
+ mockDb.delete(EasyMock.anyString());
+ EasyMock.expectLastCall().andThrow(new java.sql.SQLException("delete
failed"));
+ EasyMock.replay(mockDb);
+ FieldUtils.writeField(service, "database", mockDb, true);
+
+ service.deregister("https://any.example.com");
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void testRegisterSqlExceptionOnSnapshotReloadPropagates() throws
Exception {
+ final TrustedOidcIssuerDatabase mockDb =
EasyMock.createMock(TrustedOidcIssuerDatabase.class);
+ mockDb.insert(EasyMock.anyObject(TrustedOidcIssuer.class));
+ EasyMock.expectLastCall();
+ EasyMock.expect(mockDb.selectAll()).andThrow(new
java.sql.SQLException("selectAll failed"));
+ EasyMock.replay(mockDb);
+ FieldUtils.writeField(service, "database", mockDb, true);
+
+ service.register(issuer("https://any.example.com", false));
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void testDeregisterSqlExceptionOnSnapshotReloadPropagates() throws
Exception {
+ final TrustedOidcIssuerDatabase mockDb =
EasyMock.createMock(TrustedOidcIssuerDatabase.class);
+ mockDb.delete(EasyMock.anyString());
+ EasyMock.expectLastCall();
+ EasyMock.expect(mockDb.selectAll()).andThrow(new
java.sql.SQLException("selectAll failed"));
+ EasyMock.replay(mockDb);
+ FieldUtils.writeField(service, "database", mockDb, true);
+
+ service.deregister("https://any.example.com");
+ }
+
// ------------------------------------------------------------------
// Init guard
// ------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 99b9c803e..e5d18201b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -259,8 +259,8 @@
<mina.version>2.2.8</mina.version>
<netty.version>4.1.127.Final</netty.version>
<nimbus-jose-jwt.version>10.9.1</nimbus-jose-jwt.version>
- <oauth2-oidc-sdk.version>11.37.2</oauth2-oidc-sdk.version>
<nodejs.version>v22.20.0</nodejs.version>
+ <oauth2-oidc-sdk.version>11.37.2</oauth2-oidc-sdk.version>
<okhttp.version>4.12.0</okhttp.version>
<opensaml.version>5.2.2</opensaml.version>
<pac4j.version>6.5.3</pac4j.version>