1 # java.schema -- Java Object Schema
3 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
5 ## Copyright 1998-2015 The OpenLDAP Foundation.
6 ## All rights reserved.
8 ## Redistribution and use in source and binary forms, with or without
9 ## modification, are permitted only as authorized by the OpenLDAP
12 ## A copy of this license is available in the file LICENSE in the
13 ## top-level directory of the distribution or, alternatively, at
14 ## <http://www.OpenLDAP.org/license.html>.
16 # Java Object Schema (defined in RFC 2713)
17 # depends upon core.schema
20 # Network Working Group V. Ryan
21 # Request for Comments: 2713 S. Seligman
22 # Category: Informational R. Lee
23 # Sun Microsystems, Inc.
27 # Schema for Representing Java(tm) Objects in an LDAP Directory
31 # This memo provides information for the Internet community. It does
32 # not specify an Internet standard of any kind. Distribution of this
37 # Copyright (C) The Internet Society (1999). All Rights Reserved.
41 # This document defines the schema for representing Java(tm) objects in
42 # an LDAP directory [LDAPv3]. It defines schema elements to represent
43 # a Java serialized object [Serial], a Java marshalled object [RMI], a
44 # Java remote object [RMI], and a JNDI reference [JNDI].
49 # 3 Attribute Type Definitions
51 # The following attribute types are defined in this document:
58 # javaReferenceAddress
63 # This attribute stores the fully qualified name of the Java object's
64 # "distinguished" class or interface (for example, "java.lang.String").
65 # It is a single-valued attribute. This attribute's syntax is '
66 # Directory String' and its case is significant.
68 # ( 1.3.6.1.4.1.42.2.27.4.1.6
69 # NAME 'javaClassName'
70 # DESC 'Fully qualified name of distinguished Java class or
72 # EQUALITY caseExactMatch
73 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
77 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.6
79 DESC 'Fully qualified name of distinguished Java class or interface'
80 EQUALITY caseExactMatch
81 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
86 # This attribute stores the Java class definition's locations. It
87 # specifies the locations from which to load the class definition for
88 # the class specified by the javaClassName attribute. Each value of
89 # the attribute contains an ordered list of URLs, separated by spaces.
90 # For example, a value of "url1 url2 url3" means that the three
91 # (possibly interdependent) URLs (url1, url2, and url3) form the
92 # codebase for loading in the Java class definition.
94 # If the javaCodebase attribute contains more than one value, each
95 # value is an independent codebase. That is, there is no relationship
96 # between the URLs in one value and those in another; each value can be
97 # viewed as an alternate source for loading the Java class definition.
98 # See [Java] for information regarding class loading.
100 # This attribute's syntax is 'IA5 String' and its case is significant.
102 # ( 1.3.6.1.4.1.42.2.27.4.1.7
103 # NAME 'javaCodebase'
104 # DESC 'URL(s) specifying the location of class definition'
105 # EQUALITY caseExactIA5Match
106 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
109 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.7
111 DESC 'URL(s) specifying the location of class definition'
112 EQUALITY caseExactIA5Match
113 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
117 # This attribute stores the Java object's fully qualified class or
118 # interface names (for example, "java.lang.String"). It is a
119 # multivalued attribute. When more than one value is present, each is
120 # the name of a class or interface, or ancestor class or interface, of
123 # This attribute's syntax is 'Directory String' and its case is
126 # ( 1.3.6.1.4.1.42.2.27.4.1.13
127 # NAME 'javaClassNames'
128 # DESC 'Fully qualified Java class or interface name'
129 # EQUALITY caseExactMatch
130 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
134 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.13
135 NAME 'javaClassNames'
136 DESC 'Fully qualified Java class or interface name'
137 EQUALITY caseExactMatch
138 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
140 # 3.4 javaSerializedData
142 # This attribute stores the serialized form of a Java object. The
143 # serialized form is described in [Serial].
145 # This attribute's syntax is 'Octet String'.
147 # ( 1.3.6.1.4.1.42.2.27.4.1.8
148 # NAME 'javaSerializedData
149 # DESC 'Serialized form of a Java object'
150 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
154 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.8
155 NAME 'javaSerializedData'
156 DESC 'Serialized form of a Java object'
157 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
162 # This attribute stores the fully qualified class name of the object
163 # factory (for example, "com.wiz.jndi.WizObjectFactory") that can be
164 # used to create an instance of the object identified by the
165 # javaClassName attribute.
167 # This attribute's syntax is 'Directory String' and its case is
170 # ( 1.3.6.1.4.1.42.2.27.4.1.10
172 # DESC 'Fully qualified Java class name of a JNDI object factory'
173 # EQUALITY caseExactMatch
174 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
178 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.10
180 DESC 'Fully qualified Java class name of a JNDI object factory'
181 EQUALITY caseExactMatch
182 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
185 # 3.6 javaReferenceAddress
187 # This attribute represents the sequence of addresses of a JNDI
188 # reference. Each of its values represents one address, a Java object
189 # of type javax.naming.RefAddr. Its value is a concatenation of the
190 # address type and address contents, preceded by a sequence number (the
191 # order of addresses in a JNDI reference is significant). For example:
195 # #2#TypeC##rO0ABXNyABpq...
197 # In more detail, the value is encoded as follows:
199 # The delimiter is the first character of the value. For readability
200 # the character '#' is recommended when it is not otherwise used
201 # anywhere in the value, but any character may be used subject to
202 # restrictions given below.
204 # The first delimiter is followed by the sequence number. The sequence
205 # number of an address is its position in the JNDI reference, with the
206 # first address being numbered 0. It is represented by its shortest
207 # string form, in decimal notation.
209 # The sequence number is followed by a delimiter, then by the address
210 # type, and then by another delimiter. If the address is of Java class
211 # javax.naming.StringRefAddr, then this delimiter is followed by the
212 # value of the address contents (which is a string). Otherwise, this
213 # delimiter is followed immediately by another delimiter, and then by
214 # the Base64 encoding of the serialized form of the entire address.
216 # The delimiter may be any character other than a digit or a character
217 # contained in the address type. In addition, if the address contents
218 # is a string, the delimiter may not be the first character of that
221 # This attribute's syntax is 'Directory String' and its case is
222 # significant. It can contain multiple values.
224 # ( 1.3.6.1.4.1.42.2.27.4.1.11
225 # NAME 'javaReferenceAddress'
226 # DESC 'Addresses associated with a JNDI Reference'
227 # EQUALITY caseExactMatch
228 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
231 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.11
232 NAME 'javaReferenceAddress'
233 DESC 'Addresses associated with a JNDI Reference'
234 EQUALITY caseExactMatch
235 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
239 # This attribute stores a pointer to the Java documentation for the
240 # class. It's value is a URL. For example, the following URL points to
241 # the specification of the java.lang.String class:
242 # http://java.sun.com/products/jdk/1.2/docs/api/java/lang/String.html
244 # This attribute's syntax is 'IA5 String' and its case is significant.
246 # ( 1.3.6.1.4.1.42.2.27.4.1.12
248 # DESC 'The Java documentation for the class'
249 # EQUALITY caseExactIA5Match
250 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
253 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.12
255 DESC 'The Java documentation for the class'
256 EQUALITY caseExactIA5Match
257 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
259 # 4 Object Class Definitions
261 # The following object classes are defined in this document:
265 # javaSerializedObject
266 # javaMarshalledObject
267 # javaNamingReference
271 # This structural object class represents a container for a Java
274 # ( 1.3.6.1.4.1.42.2.27.4.2.1
275 # NAME 'javaContainer'
276 # DESC 'Container for a Java object'
282 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.1
284 DESC 'Container for a Java object'
291 # This abstract object class represents a Java object. A javaObject
292 # cannot exist in the directory; only auxiliary or structural
293 # subclasses of it can exist in the directory.
295 # ( 1.3.6.1.4.1.42.2.27.4.2.4
297 # DESC 'Java object representation'
300 # MUST ( javaClassName )
301 # MAY ( javaClassNames $
307 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.4
309 DESC 'Java object representation'
313 MAY ( javaClassNames $ javaCodebase $
314 javaDoc $ description ) )
316 # 4.3 javaSerializedObject
318 # This auxiliary object class represents a Java serialized object. It
319 # must be mixed in with a structural object class.
321 # ( 1.3.6.1.4.1.42.2.27.4.2.5
322 # NAME 'javaSerializedObject'
323 # DESC 'Java serialized object'
326 # MUST ( javaSerializedData )
329 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.5
330 NAME 'javaSerializedObject'
331 DESC 'Java serialized object'
334 MUST javaSerializedData )
336 # 4.4 javaMarshalledObject
338 # This auxiliary object class represents a Java marshalled object. It
339 # must be mixed in with a structural object class.
341 # ( 1.3.6.1.4.1.42.2.27.4.2.8
342 # NAME 'javaMarshalledObject'
343 # DESC 'Java marshalled object'
346 # MUST ( javaSerializedData )
349 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.8
350 NAME 'javaMarshalledObject'
351 DESC 'Java marshalled object'
354 MUST javaSerializedData )
356 # 4.5 javaNamingReference
358 # This auxiliary object class represents a JNDI reference. It must be
359 # mixed in with a structural object class.
361 # ( 1.3.6.1.4.1.42.2.27.4.2.7
362 # NAME 'javaNamingReference'
363 # DESC 'JNDI reference'
366 # MAY ( javaReferenceAddress $
370 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.7
371 NAME 'javaNamingReference'
372 DESC 'JNDI reference'
375 MAY ( javaReferenceAddress $ javaFactory ) )
377 # Full Copyright Statement
379 # Copyright (C) The Internet Society (1999). All Rights Reserved.
381 # This document and translations of it may be copied and furnished to
382 # others, and derivative works that comment on or otherwise explain it
383 # or assist in its implementation may be prepared, copied, published
384 # and distributed, in whole or in part, without restriction of any
385 # kind, provided that the above copyright notice and this paragraph are
386 # included on all such copies and derivative works. However, this
387 # document itself may not be modified in any way, such as by removing
388 # the copyright notice or references to the Internet Society or other
389 # Internet organizations, except as needed for the purpose of
390 # developing Internet standards in which case the procedures for
391 # copyrights defined in the Internet Standards process must be
392 # followed, or as required to translate it into languages other than
395 # The limited permissions granted above are perpetual and will not be
396 # revoked by the Internet Society or its successors or assigns.
398 # This document and the information contained herein is provided on an
399 # "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
400 # TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
401 # BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
402 # HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
403 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.