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