aboutsummaryrefslogtreecommitdiffstats
path: root/security-utils
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2023-02-17 11:31:09 +0100
committerBjørn Christian Seime <bjorncs@yahooinc.com>2023-02-17 11:31:09 +0100
commitc4f7cb98b887b1d5e1dc3796339402ba974ddc93 (patch)
tree1af2c6e424382bda8ac36ac1a165588acd24cf4d /security-utils
parent95f4c7a24fc43b0ffc754334a561ffaed6f529b9 (diff)
Warn instead of fail for unknown capability (set)
Diffstat (limited to 'security-utils')
-rw-r--r--security-utils/src/main/java/com/yahoo/security/tls/Capability.java8
-rw-r--r--security-utils/src/main/java/com/yahoo/security/tls/CapabilitySet.java11
2 files changed, 10 insertions, 9 deletions
diff --git a/security-utils/src/main/java/com/yahoo/security/tls/Capability.java b/security-utils/src/main/java/com/yahoo/security/tls/Capability.java
index e60598a9dc2..6a6471aa8ac 100644
--- a/security-utils/src/main/java/com/yahoo/security/tls/Capability.java
+++ b/security-utils/src/main/java/com/yahoo/security/tls/Capability.java
@@ -2,6 +2,7 @@
package com.yahoo.security.tls;
import java.util.Arrays;
+import java.util.Optional;
/**
* @author bjorncs
@@ -48,11 +49,6 @@ public enum Capability implements ToCapabilitySet {
@Override public CapabilitySet toCapabilitySet() { return CapabilitySet.of(this); }
- public static Capability fromName(String name) {
- return Arrays.stream(values())
- .filter(c -> c.name.equals(name))
- .findAny().orElseThrow(() ->
- new IllegalArgumentException("Cannot find predefined capability set with name '" + name + "'"));
- }
+ public static Optional<Capability> fromName(String n) { return Arrays.stream(values()).filter(c -> c.name.equals(n)).findAny(); }
}
diff --git a/security-utils/src/main/java/com/yahoo/security/tls/CapabilitySet.java b/security-utils/src/main/java/com/yahoo/security/tls/CapabilitySet.java
index b4674e2ac38..3d8d5ced6d6 100644
--- a/security-utils/src/main/java/com/yahoo/security/tls/CapabilitySet.java
+++ b/security-utils/src/main/java/com/yahoo/security/tls/CapabilitySet.java
@@ -12,6 +12,7 @@ import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.logging.Logger;
import java.util.stream.Collectors;
/**
@@ -19,6 +20,8 @@ import java.util.stream.Collectors;
*/
public class CapabilitySet implements ToCapabilitySet {
+ private static final Logger log = Logger.getLogger(CapabilitySet.class.getName());
+
private static final Map<String, CapabilitySet> PREDEFINED = new HashMap<>();
@@ -71,9 +74,11 @@ public class CapabilitySet implements ToCapabilitySet {
public static CapabilitySet fromNames(Collection<String> names) {
EnumSet<Capability> caps = EnumSet.noneOf(Capability.class);
for (String name : names) {
- var predefined = PREDEFINED.get(name);
- if (predefined != null) caps.addAll(predefined.caps);
- else caps.add(Capability.fromName(name));
+ var predefinedSet = PREDEFINED.get(name);
+ var capability = Capability.fromName(name).orElse(null);
+ if (capability != null) caps.add(capability);
+ else if (predefinedSet != null) caps.addAll(predefinedSet.caps);
+ else log.warning("Cannot find capability or capability set with name '%s'".formatted(name));
}
return new CapabilitySet(caps);
}