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