You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/05/10 09:19:00 UTC
(camel) branch main updated: camel-kubernetes: fix secret in local mode can cause NPE
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 31bb4eea7ea camel-kubernetes: fix secret in local mode can cause NPE
31bb4eea7ea is described below
commit 31bb4eea7eaa1185afb7f64f674c03f7ab2fab28
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat May 10 11:17:10 2025 +0200
camel-kubernetes: fix secret in local mode can cause NPE
---
.../kubernetes/secrets/vault/SecretsDevConsole.java | 15 +++++++++++----
.../camel/dsl/jbang/core/commands/process/ListVault.java | 10 +++++-----
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java
index 2528a6f167b..3b7d32d9a61 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/vault/SecretsDevConsole.java
@@ -22,6 +22,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
+import io.fabric8.kubernetes.client.KubernetesClient;
import org.apache.camel.component.kubernetes.properties.SecretPropertiesFunction;
import org.apache.camel.spi.PeriodTaskScheduler;
import org.apache.camel.spi.PropertiesFunction;
@@ -66,8 +67,11 @@ public class SecretsDevConsole extends AbstractDevConsole {
if (propertiesFunction != null) {
sb.append("Kubernetes Secrets Cluster:");
- sb.append(String.format("\n Master Url: %s", propertiesFunction.getClient().getMasterUrl()));
- sb.append("\n Login: OAuth Token");
+ KubernetesClient client = propertiesFunction.getClient();
+ if (client != null && client.getMasterUrl() != null) {
+ sb.append(String.format("\n Master Url: %s", client.getMasterUrl().toString()));
+ sb.append("\n Login: OAuth Token");
+ }
KubernetesVaultConfiguration kubernetes
= getCamelContext().getVaultConfiguration().getKubernetesVaultConfiguration();
if (kubernetes != null) {
@@ -98,8 +102,11 @@ public class SecretsDevConsole extends AbstractDevConsole {
protected JsonObject doCallJson(Map<String, Object> options) {
JsonObject root = new JsonObject();
if (propertiesFunction != null) {
- root.put("masterUrl", propertiesFunction.getClient().getMasterUrl().toString());
- root.put("login", "OAuth Token");
+ KubernetesClient client = propertiesFunction.getClient();
+ if (client != null && client.getMasterUrl() != null) {
+ root.put("masterUrl", client.getMasterUrl().toString());
+ root.put("login", "OAuth Token");
+ }
}
KubernetesVaultConfiguration kubernetes = getCamelContext().getVaultConfiguration().getKubernetesVaultConfiguration();
if (kubernetes != null) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java
index 9ebb40d83dc..462fce318b5 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListVault.java
@@ -90,7 +90,7 @@ public class ListVault extends ProcessWatchCommand {
row.lastCheck = aws.getLongOrDefault("lastCheckTimestamp", 0);
row.lastReload = aws.getLongOrDefault("lastReloadTimestamp", 0);
JsonArray arr = (JsonArray) aws.get("secrets");
- for (int i = 0; i < arr.size(); i++) {
+ for (int i = 0; arr != null && i < arr.size(); i++) {
if (i > 0) {
// create a copy for 2+ secrets
row = row.copy();
@@ -107,7 +107,7 @@ public class ListVault extends ProcessWatchCommand {
row.lastCheck = gcp.getLongOrDefault("lastCheckTimestamp", 0);
row.lastReload = gcp.getLongOrDefault("lastReloadTimestamp", 0);
JsonArray arr = (JsonArray) gcp.get("secrets");
- for (int i = 0; i < arr.size(); i++) {
+ for (int i = 0; arr != null && i < arr.size(); i++) {
if (i > 0) {
// create a copy for 2+ secrets
row = row.copy();
@@ -124,7 +124,7 @@ public class ListVault extends ProcessWatchCommand {
row.lastCheck = azure.getLongOrDefault("lastCheckTimestamp", 0);
row.lastReload = azure.getLongOrDefault("lastReloadTimestamp", 0);
JsonArray arr = (JsonArray) azure.get("secrets");
- for (int i = 0; i < arr.size(); i++) {
+ for (int i = 0; arr != null && i < arr.size(); i++) {
if (i > 0) {
// create a copy for 2+ secrets
row = row.copy();
@@ -142,7 +142,7 @@ public class ListVault extends ProcessWatchCommand {
row.lastCheck = kubernetes.getLongOrDefault("startCheckTimestamp", 0);
row.lastReload = kubernetes.getLongOrDefault("lastReloadTimestamp", 0);
JsonArray arr = (JsonArray) kubernetes.get("secrets");
- for (int i = 0; i < arr.size(); i++) {
+ for (int i = 0; arr != null && i < arr.size(); i++) {
if (i > 0) {
// create a copy for 2+ secrets
row = row.copy();
@@ -168,7 +168,7 @@ public class ListVault extends ProcessWatchCommand {
row.lastCheck = cmKubernetes.getLongOrDefault("startCheckTimestamp", 0);
row.lastReload = cmKubernetes.getLongOrDefault("lastReloadTimestamp", 0);
JsonArray arr = (JsonArray) cmKubernetes.get("configmap");
- for (int i = 0; i < arr.size(); i++) {
+ for (int i = 0; arr != null && i < arr.size(); i++) {
if (i > 0) {
// create a copy for 2+ configmap
row = row.copy();