diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-05-13 13:16:07 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-05-13 16:03:05 +0200 |
commit | 84e708c6679b9d11b4d5f92861b46a62983be51f (patch) | |
tree | daa669968180ccd608eec200da75e05609caead0 /security-utils/src | |
parent | 5c128664cb665218298758ba7faaf3b8f6af2c5c (diff) |
Add getSubjectOrganizationalUnits() to X509CertificateUtils
Diffstat (limited to 'security-utils/src')
-rw-r--r-- | security-utils/src/main/java/com/yahoo/security/X509CertificateUtils.java | 18 |
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) { |