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;
+ }
+
+}