summaryrefslogtreecommitdiffstats
path: root/security-utils
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2019-05-13 13:16:07 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2019-05-13 16:03:05 +0200
commit84e708c6679b9d11b4d5f92861b46a62983be51f (patch)
treedaa669968180ccd608eec200da75e05609caead0 /security-utils
parent5c128664cb665218298758ba7faaf3b8f6af2c5c (diff)
Add getSubjectOrganizationalUnits() to X509CertificateUtils
Diffstat (limited to 'security-utils')
-rw-r--r--security-utils/src/main/java/com/yahoo/security/X509CertificateUtils.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/security-utils/src/main/java/com/yahoo/security/X509CertificateUtils.java b/security-utils/src/main/java/com/yahoo/security/X509CertificateUtils.java
index fc7a6780b23..97b6cc344e1 100644
--- a/security-utils/src/main/java/com/yahoo/security/X509CertificateUtils.java
+++ b/security-utils/src/main/java/com/yahoo/security/X509CertificateUtils.java
@@ -106,17 +106,23 @@ public class X509CertificateUtils {
return getCommonNames(certificate.getIssuerX500Principal());
}
- public static List<String> getCommonNames(X500Principal subject) {
+ public static List<String> getSubjectOrganizationalUnits(X509Certificate certificate) {
+ return getRdns(certificate.getSubjectX500Principal(), "OU");
+ }
+
+ public static List<String> getCommonNames(X500Principal distinguishedName) {
+ return getRdns(distinguishedName, "CN");
+ }
+
+ private static List<String> getRdns(X500Principal distinguishedName, String rdnName) {
try {
- String subjectPrincipal = subject.getName();
- return new LdapName(subjectPrincipal).getRdns().stream()
- .filter(rdn -> rdn.getType().equalsIgnoreCase("cn"))
+ return new LdapName(distinguishedName.getName()).getRdns().stream()
+ .filter(rdn -> rdn.getType().equalsIgnoreCase(rdnName))
.map(rdn -> rdn.getValue().toString())
.collect(toList());
} catch (NamingException e) {
- throw new IllegalArgumentException("Invalid CN: " + e, e);
+ throw new IllegalArgumentException("Invalid DN: " + distinguishedName.getName(), e);
}
-
}
public static List<SubjectAlternativeName> getSubjectAlternativeNames(X509Certificate certificate) {