From e4b44be13dde0ddc9acb794add1c9459e2483513 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 27 Oct 2019 10:15:32 +0100 Subject: [PATCH] Introduce distinguished name interface. --- .../src/org/argeo/naming/Distinguished.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 org.argeo.enterprise/src/org/argeo/naming/Distinguished.java diff --git a/org.argeo.enterprise/src/org/argeo/naming/Distinguished.java b/org.argeo.enterprise/src/org/argeo/naming/Distinguished.java new file mode 100644 index 000000000..ba0db4955 --- /dev/null +++ b/org.argeo.enterprise/src/org/argeo/naming/Distinguished.java @@ -0,0 +1,23 @@ +package org.argeo.naming; + +import javax.naming.InvalidNameException; +import javax.naming.ldap.LdapName; + +/** + * An object that can be identified with an X.500 distinguished name. + * + * @see https://tools.ietf.org/html/rfc1779 + */ +public interface Distinguished { + /** The related distinguished name. */ + String dn(); + + /** The related distinguished name as an {@link LdapName}. */ + default LdapName distinguishedName() { + try { + return new LdapName(dn()); + } catch (InvalidNameException e) { + throw new IllegalArgumentException("Distinguished name " + dn() + " is not properly formatted.", e); + } + } +} -- 2.30.2