]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.util/src/org/argeo/util/naming/LdapAttrs.java
Introduce argeo-desktop-open
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / util / naming / LdapAttrs.java
1 package org.argeo.util.naming;
2
3 import java.util.function.Supplier;
4
5 import javax.xml.namespace.QName;
6
7 import org.argeo.util.internal.DisplayQName;
8
9 /**
10 * Standard LDAP attributes as per:<br>
11 * - <a href= "https://www.ldap.com/ldap-oid-reference">Standard LDAP</a><br>
12 * - <a href=
13 * "https://github.com/krb5/krb5/blob/master/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema">Kerberos
14 * LDAP (partial)</a>
15 */
16 public enum LdapAttrs implements SpecifiedName, Supplier<String> {
17 /** */
18 uid("0.9.2342.19200300.100.1.1", "RFC 4519"),
19 /** */
20 mail("0.9.2342.19200300.100.1.3", "RFC 4524"),
21 /** */
22 info("0.9.2342.19200300.100.1.4", "RFC 4524"),
23 /** */
24 drink("0.9.2342.19200300.100.1.5", "RFC 4524"),
25 /** */
26 roomNumber("0.9.2342.19200300.100.1.6", "RFC 4524"),
27 /** */
28 photo("0.9.2342.19200300.100.1.7", "RFC 2798"),
29 /** */
30 userClass("0.9.2342.19200300.100.1.8", "RFC 4524"),
31 /** */
32 host("0.9.2342.19200300.100.1.9", "RFC 4524"),
33 /** */
34 manager("0.9.2342.19200300.100.1.10", "RFC 4524"),
35 /** */
36 documentIdentifier("0.9.2342.19200300.100.1.11", "RFC 4524"),
37 /** */
38 documentTitle("0.9.2342.19200300.100.1.12", "RFC 4524"),
39 /** */
40 documentVersion("0.9.2342.19200300.100.1.13", "RFC 4524"),
41 /** */
42 documentAuthor("0.9.2342.19200300.100.1.14", "RFC 4524"),
43 /** */
44 documentLocation("0.9.2342.19200300.100.1.15", "RFC 4524"),
45 /** */
46 homePhone("0.9.2342.19200300.100.1.20", "RFC 4524"),
47 /** */
48 secretary("0.9.2342.19200300.100.1.21", "RFC 4524"),
49 /** */
50 dc("0.9.2342.19200300.100.1.25", "RFC 4519"),
51 /** */
52 associatedDomain("0.9.2342.19200300.100.1.37", "RFC 4524"),
53 /** */
54 associatedName("0.9.2342.19200300.100.1.38", "RFC 4524"),
55 /** */
56 homePostalAddress("0.9.2342.19200300.100.1.39", "RFC 4524"),
57 /** */
58 personalTitle("0.9.2342.19200300.100.1.40", "RFC 4524"),
59 /** */
60 mobile("0.9.2342.19200300.100.1.41", "RFC 4524"),
61 /** */
62 pager("0.9.2342.19200300.100.1.42", "RFC 4524"),
63 /** */
64 co("0.9.2342.19200300.100.1.43", "RFC 4524"),
65 /** */
66 uniqueIdentifier("0.9.2342.19200300.100.1.44", "RFC 4524"),
67 /** */
68 organizationalStatus("0.9.2342.19200300.100.1.45", "RFC 4524"),
69 /** */
70 buildingName("0.9.2342.19200300.100.1.48", "RFC 4524"),
71 /** */
72 audio("0.9.2342.19200300.100.1.55", "RFC 2798"),
73 /** */
74 documentPublisher("0.9.2342.19200300.100.1.56", "RFC 4524"),
75 /** */
76 jpegPhoto("0.9.2342.19200300.100.1.60", "RFC 2798"),
77 /** */
78 vendorName("1.3.6.1.1.4", "RFC 3045"),
79 /** */
80 vendorVersion("1.3.6.1.1.5", "RFC 3045"),
81 /** */
82 entryUUID("1.3.6.1.1.16.4", "RFC 4530"),
83 /** */
84 entryDN("1.3.6.1.1.20", "RFC 5020"),
85 /** */
86 labeledURI("1.3.6.1.4.1.250.1.57", "RFC 2798"),
87 /** */
88 numSubordinates("1.3.6.1.4.1.453.16.2.103", "draft-ietf-boreham-numsubordinates"),
89 /** */
90 namingContexts("1.3.6.1.4.1.1466.101.120.5", "RFC 4512"),
91 /** */
92 altServer("1.3.6.1.4.1.1466.101.120.6", "RFC 4512"),
93 /** */
94 supportedExtension("1.3.6.1.4.1.1466.101.120.7", "RFC 4512"),
95 /** */
96 supportedControl("1.3.6.1.4.1.1466.101.120.13", "RFC 4512"),
97 /** */
98 supportedSASLMechanisms("1.3.6.1.4.1.1466.101.120.14", "RFC 4512"),
99 /** */
100 supportedLDAPVersion("1.3.6.1.4.1.1466.101.120.15", "RFC 4512"),
101 /** */
102 ldapSyntaxes("1.3.6.1.4.1.1466.101.120.16", "RFC 4512"),
103 /** */
104 supportedAuthPasswordSchemes("1.3.6.1.4.1.4203.1.3.3", "RFC 3112"),
105 /** */
106 authPassword("1.3.6.1.4.1.4203.1.3.4", "RFC 3112"),
107 /** */
108 supportedFeatures("1.3.6.1.4.1.4203.1.3.5", "RFC 4512"),
109 /** */
110 inheritable("1.3.6.1.4.1.7628.5.4.1", "draft-ietf-ldup-subentry"),
111 /** */
112 blockInheritance("1.3.6.1.4.1.7628.5.4.2", "draft-ietf-ldup-subentry"),
113 /** */
114 objectClass("2.5.4.0", "RFC 4512"),
115 /** */
116 aliasedObjectName("2.5.4.1", "RFC 4512"),
117 /** */
118 cn("2.5.4.3", "RFC 4519"),
119 /** */
120 sn("2.5.4.4", "RFC 4519"),
121 /** */
122 serialNumber("2.5.4.5", "RFC 4519"),
123 /** */
124 c("2.5.4.6", "RFC 4519"),
125 /** */
126 l("2.5.4.7", "RFC 4519"),
127 /** */
128 st("2.5.4.8", "RFC 4519"),
129 /** */
130 street("2.5.4.9", "RFC 4519"),
131 /** */
132 o("2.5.4.10", "RFC 4519"),
133 /** */
134 ou("2.5.4.11", "RFC 4519"),
135 /** */
136 title("2.5.4.12", "RFC 4519"),
137 /** */
138 description("2.5.4.13", "RFC 4519"),
139 /** */
140 searchGuide("2.5.4.14", "RFC 4519"),
141 /** */
142 businessCategory("2.5.4.15", "RFC 4519"),
143 /** */
144 postalAddress("2.5.4.16", "RFC 4519"),
145 /** */
146 postalCode("2.5.4.17", "RFC 4519"),
147 /** */
148 postOfficeBox("2.5.4.18", "RFC 4519"),
149 /** */
150 physicalDeliveryOfficeName("2.5.4.19", "RFC 4519"),
151 /** */
152 telephoneNumber("2.5.4.20", "RFC 4519"),
153 /** */
154 telexNumber("2.5.4.21", "RFC 4519"),
155 /** */
156 teletexTerminalIdentifier("2.5.4.22", "RFC 4519"),
157 /** */
158 facsimileTelephoneNumber("2.5.4.23", "RFC 4519"),
159 /** */
160 x121Address("2.5.4.24", "RFC 4519"),
161 /** */
162 internationalISDNNumber("2.5.4.25", "RFC 4519"),
163 /** */
164 registeredAddress("2.5.4.26", "RFC 4519"),
165 /** */
166 destinationIndicator("2.5.4.27", "RFC 4519"),
167 /** */
168 preferredDeliveryMethod("2.5.4.28", "RFC 4519"),
169 /** */
170 member("2.5.4.31", "RFC 4519"),
171 /** */
172 owner("2.5.4.32", "RFC 4519"),
173 /** */
174 roleOccupant("2.5.4.33", "RFC 4519"),
175 /** */
176 seeAlso("2.5.4.34", "RFC 4519"),
177 /** */
178 userPassword("2.5.4.35", "RFC 4519"),
179 /** */
180 userCertificate("2.5.4.36", "RFC 4523"),
181 /** */
182 cACertificate("2.5.4.37", "RFC 4523"),
183 /** */
184 authorityRevocationList("2.5.4.38", "RFC 4523"),
185 /** */
186 certificateRevocationList("2.5.4.39", "RFC 4523"),
187 /** */
188 crossCertificatePair("2.5.4.40", "RFC 4523"),
189 /** */
190 name("2.5.4.41", "RFC 4519"),
191 /** */
192 givenName("2.5.4.42", "RFC 4519"),
193 /** */
194 initials("2.5.4.43", "RFC 4519"),
195 /** */
196 generationQualifier("2.5.4.44", "RFC 4519"),
197 /** */
198 x500UniqueIdentifier("2.5.4.45", "RFC 4519"),
199 /** */
200 dnQualifier("2.5.4.46", "RFC 4519"),
201 /** */
202 enhancedSearchGuide("2.5.4.47", "RFC 4519"),
203 /** */
204 distinguishedName("2.5.4.49", "RFC 4519"),
205 /** */
206 uniqueMember("2.5.4.50", "RFC 4519"),
207 /** */
208 houseIdentifier("2.5.4.51", "RFC 4519"),
209 /** */
210 supportedAlgorithms("2.5.4.52", "RFC 4523"),
211 /** */
212 deltaRevocationList("2.5.4.53", "RFC 4523"),
213 /** */
214 createTimestamp("2.5.18.1", "RFC 4512"),
215 /** */
216 modifyTimestamp("2.5.18.2", "RFC 4512"),
217 /** */
218 creatorsName("2.5.18.3", "RFC 4512"),
219 /** */
220 modifiersName("2.5.18.4", "RFC 4512"),
221 /** */
222 subschemaSubentry("2.5.18.10", "RFC 4512"),
223 /** */
224 dITStructureRules("2.5.21.1", "RFC 4512"),
225 /** */
226 dITContentRules("2.5.21.2", "RFC 4512"),
227 /** */
228 matchingRules("2.5.21.4", "RFC 4512"),
229 /** */
230 attributeTypes("2.5.21.5", "RFC 4512"),
231 /** */
232 objectClasses("2.5.21.6", "RFC 4512"),
233 /** */
234 nameForms("2.5.21.7", "RFC 4512"),
235 /** */
236 matchingRuleUse("2.5.21.8", "RFC 4512"),
237 /** */
238 structuralObjectClass("2.5.21.9", "RFC 4512"),
239 /** */
240 governingStructureRule("2.5.21.10", "RFC 4512"),
241 /** */
242 carLicense("2.16.840.1.113730.3.1.1", "RFC 2798"),
243 /** */
244 departmentNumber("2.16.840.1.113730.3.1.2", "RFC 2798"),
245 /** */
246 employeeNumber("2.16.840.1.113730.3.1.3", "RFC 2798"),
247 /** */
248 employeeType("2.16.840.1.113730.3.1.4", "RFC 2798"),
249 /** */
250 changeNumber("2.16.840.1.113730.3.1.5", "draft-good-ldap-changelog"),
251 /** */
252 targetDN("2.16.840.1.113730.3.1.6", "draft-good-ldap-changelog"),
253 /** */
254 changeType("2.16.840.1.113730.3.1.7", "draft-good-ldap-changelog"),
255 /** */
256 changes("2.16.840.1.113730.3.1.8", "draft-good-ldap-changelog"),
257 /** */
258 newRDN("2.16.840.1.113730.3.1.9", "draft-good-ldap-changelog"),
259 /** */
260 deleteOldRDN("2.16.840.1.113730.3.1.10", "draft-good-ldap-changelog"),
261 /** */
262 newSuperior("2.16.840.1.113730.3.1.11", "draft-good-ldap-changelog"),
263 /** */
264 ref("2.16.840.1.113730.3.1.34", "RFC 3296"),
265 /** */
266 changelog("2.16.840.1.113730.3.1.35", "draft-good-ldap-changelog"),
267 /** */
268 preferredLanguage("2.16.840.1.113730.3.1.39", "RFC 2798"),
269 /** */
270 userSMIMECertificate("2.16.840.1.113730.3.1.40", "RFC 2798"),
271 /** */
272 userPKCS12("2.16.840.1.113730.3.1.216", "RFC 2798"),
273 /** */
274 displayName("2.16.840.1.113730.3.1.241", "RFC 2798"),
275
276 // Sun memberOf
277 memberOf("1.2.840.113556.1.2.102", "389 DS memberOf"),
278
279 // KERBEROS (partial)
280 krbPrincipalName("2.16.840.1.113719.1.301.6.8.1", "Novell Kerberos Schema Definitions"),
281
282 // RFC 2985 and RFC 3039 (partial)
283 dateOfBirth("1.3.6.1.5.5.7.9.1", "RFC 2985"),
284 /** */
285 placeOfBirth("1.3.6.1.5.5.7.9.2", "RFC 2985"),
286 /** */
287 gender("1.3.6.1.5.5.7.9.3", "RFC 2985"),
288 /** */
289 countryOfCitizenship("1.3.6.1.5.5.7.9.4", "RFC 2985"),
290 /** */
291 countryOfResidence("1.3.6.1.5.5.7.9.5", "RFC 2985"),
292
293 // RFC 2307bis (partial)
294 /** */
295 uidNumber("1.3.6.1.1.1.1.0", "RFC 2307bis"),
296 /** */
297 gidNumber("1.3.6.1.1.1.1.1", "RFC 2307bis"),
298 /** */
299 homeDirectory("1.3.6.1.1.1.1.3", "RFC 2307bis"),
300 /** */
301 loginShell("1.3.6.1.1.1.1.4", "RFC 2307bis"),
302 /** */
303 memberUid("1.3.6.1.1.1.1.12", "RFC 2307bis"),
304
305 //
306 ;
307
308 public final static String DN = "dn";
309
310 // private final static String LDAP_ = "ldap:";
311
312 private final String oid, spec;
313 private final QName value;
314
315 LdapAttrs(String oid, String spec) {
316 this.oid = oid;
317 this.spec = spec;
318 this.value = new DisplayQName(LdapObjs.LDAP_NAMESPACE_URI, name(), LdapObjs.LDAP_DEFAULT_PREFIX);
319 }
320
321 public QName qName() {
322 return value;
323 }
324
325 @Override
326 public String getID() {
327 return oid;
328 }
329
330 @Override
331 public String getSpec() {
332 return spec;
333 }
334
335 @Deprecated
336 public String property() {
337 return get();
338 }
339
340 @Deprecated
341 public String qualified() {
342 return get();
343 }
344
345 @Override
346 public String get() {
347 return LdapObjs.LDAP_DEFAULT_PREFIX + ":" + name();
348 }
349
350 @Override
351 public final String toString() {
352 // must return the name
353 return name();
354 }
355
356 }