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 2022/08/02 10:14:58 UTC

[camel] branch main updated: camel-console - Dev console for JSSE

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 5b059e4a70c camel-console - Dev console for JSSE
5b059e4a70c is described below

commit 5b059e4a70c6eb1d26fa7fb47de2b8f33d238f8e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Aug 2 12:14:42 2022 +0200

    camel-console - Dev console for JSSE
---
 .../console/JavaSecurityDevConsoleConfigurer.java  |  49 +++++++++
 ...pache.camel.impl.console.JavaSecurityDevConsole |   2 +
 .../org/apache/camel/dev-console/java-security     |   2 +
 .../camel/impl/console/JavaSecurityDevConsole.java | 109 +++++++++++++++++++++
 4 files changed, 162 insertions(+)

diff --git a/core/camel-console/src/generated/java/org/apache/camel/impl/console/JavaSecurityDevConsoleConfigurer.java b/core/camel-console/src/generated/java/org/apache/camel/impl/console/JavaSecurityDevConsoleConfigurer.java
new file mode 100644
index 00000000000..9feb539f265
--- /dev/null
+++ b/core/camel-console/src/generated/java/org/apache/camel/impl/console/JavaSecurityDevConsoleConfigurer.java
@@ -0,0 +1,49 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.console;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.console.JavaSecurityDevConsole;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class JavaSecurityDevConsoleConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.impl.console.JavaSecurityDevConsole target = (org.apache.camel.impl.console.JavaSecurityDevConsole) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "camelcontext":
+        case "CamelContext": target.setCamelContext(property(camelContext, org.apache.camel.CamelContext.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "camelcontext":
+        case "CamelContext": return org.apache.camel.CamelContext.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.impl.console.JavaSecurityDevConsole target = (org.apache.camel.impl.console.JavaSecurityDevConsole) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "camelcontext":
+        case "CamelContext": return target.getCamelContext();
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.console.JavaSecurityDevConsole b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.console.JavaSecurityDevConsole
new file mode 100644
index 00000000000..b284af54aee
--- /dev/null
+++ b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.console.JavaSecurityDevConsole
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.console.JavaSecurityDevConsoleConfigurer
diff --git a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/java-security b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/java-security
new file mode 100644
index 00000000000..cf191169124
--- /dev/null
+++ b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/java-security
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.console.JavaSecurityDevConsole
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
new file mode 100644
index 00000000000..e7315f58e76
--- /dev/null
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.impl.console;
+
+import java.security.Provider;
+import java.security.Security;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.annotations.DevConsole;
+import org.apache.camel.util.json.JsonArray;
+import org.apache.camel.util.json.JsonObject;
+
+@DevConsole("java-security")
+@Configurer(bootstrap = true)
+public class JavaSecurityDevConsole extends AbstractDevConsole {
+
+    public JavaSecurityDevConsole() {
+        super("jvm", "java-security", "Java Security", "Displays Java Security (JSSE) information");
+    }
+
+    @Override
+    protected String doCallText(Map<String, Object> options) {
+        StringBuilder sb = new StringBuilder();
+
+        Provider[] providers = Security.getProviders();
+        if (providers != null && providers.length > 0) {
+            sb.append("Security Providers:");
+            sb.append("\n");
+            for (Provider p : providers) {
+                sb.append(String.format("\n    %s (%s)\n", p.getName(), p.getVersionStr()));
+                if (p.getInfo() != null) {
+                    sb.append(String.format("\n        %s\n", p.getInfo()));
+                }
+                List<Provider.Service> services = p.getServices().stream()
+                        .sorted(JavaSecurityDevConsole::compare)
+                        .collect(Collectors.toList());
+                for (Provider.Service s : services) {
+                    sb.append(String.format("\n        %s: %s (%s)", s.getType(), s.getAlgorithm(), s.getClassName()));
+                }
+                sb.append("\n");
+            }
+            sb.append("\n");
+        }
+
+        return sb.toString();
+    }
+
+    @Override
+    protected JsonObject doCallJson(Map<String, Object> options) {
+        JsonObject root = new JsonObject();
+
+        Provider[] providers = Security.getProviders();
+        if (providers != null && providers.length > 0) {
+            JsonArray arr = new JsonArray();
+            root.put("securityProviders", arr);
+            for (Provider p : providers) {
+                JsonObject jo = new JsonObject();
+                arr.add(jo);
+                jo.put("name", p.getName());
+                jo.put("version", p.getVersionStr());
+                if (p.getInfo() != null) {
+                    jo.put("info", p.getInfo());
+                }
+                List<Provider.Service> services = p.getServices().stream()
+                        .sorted(JavaSecurityDevConsole::compare)
+                        .collect(Collectors.toList());
+                if (!services.isEmpty()) {
+                    JsonArray arr2 = new JsonArray();
+                    jo.put("services", arr2);
+                    for (Provider.Service s : services) {
+                        JsonObject js = new JsonObject();
+                        js.put("type", s.getType());
+                        js.put("algorithm", s.getAlgorithm());
+                        js.put("className", s.getClassName());
+                        arr2.add(js);
+                    }
+                }
+            }
+        }
+
+        return root;
+    }
+
+    private static int compare(Provider.Service o1, Provider.Service o2) {
+        int num = o1.getType().compareToIgnoreCase(o2.getType());
+        if (num == 0) {
+            num = o1.getAlgorithm().compareToIgnoreCase(o2.getAlgorithm());
+        }
+        return num;
+    }
+
+}