3 # depends upon core.schema
5 # Network Working Group V. Ryan
6 # Request for Comments: 2713 S. Seligman
7 # Category: Informational R. Lee
8 # Sun Microsystems, Inc.
12 # Schema for Representing Java(tm) Objects in an LDAP Directory
16 # This memo provides information for the Internet community. It does
17 # not specify an Internet standard of any kind. Distribution of this
22 # Copyright (C) The Internet Society (1999). All Rights Reserved.
26 # This document defines the schema for representing Java(tm) objects in
27 # an LDAP directory [LDAPv3]. It defines schema elements to represent
28 # a Java serialized object [Serial], a Java marshalled object [RMI], a
29 # Java remote object [RMI], and a JNDI reference [JNDI].
34 # 3 Attribute Type Definitions
36 # The following attribute types are defined in this document:
43 # javaReferenceAddress
48 # This attribute stores the fully qualified name of the Java object's
49 # "distinguished" class or interface (for example, "java.lang.String").
50 # It is a single-valued attribute. This attribute's syntax is '
51 # Directory String' and its case is significant.
53 # ( 1.3.6.1.4.1.42.2.27.4.1.6
54 # NAME 'javaClassName'
55 # DESC 'Fully qualified name of distinguished Java class or
57 # EQUALITY caseExactMatch
58 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
62 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.6
64 DESC 'Fully qualified name of distinguished Java class or interface'
65 EQUALITY caseExactMatch
66 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
71 # This attribute stores the Java class definition's locations. It
72 # specifies the locations from which to load the class definition for
73 # the class specified by the javaClassName attribute. Each value of
74 # the attribute contains an ordered list of URLs, separated by spaces.
75 # For example, a value of "url1 url2 url3" means that the three
76 # (possibly interdependent) URLs (url1, url2, and url3) form the
77 # codebase for loading in the Java class definition.
79 # If the javaCodebase attribute contains more than one value, each
80 # value is an independent codebase. That is, there is no relationship
81 # between the URLs in one value and those in another; each value can be
82 # viewed as an alternate source for loading the Java class definition.
83 # See [Java] for information regarding class loading.
85 # This attribute's syntax is 'IA5 String' and its case is significant.
87 # ( 1.3.6.1.4.1.42.2.27.4.1.7
89 # DESC 'URL(s) specifying the location of class definition'
90 # EQUALITY caseExactIA5Match
91 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
94 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.7
96 DESC 'URL(s) specifying the location of class definition'
97 EQUALITY caseExactIA5Match
98 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
102 # This attribute stores the Java object's fully qualified class or
103 # interface names (for example, "java.lang.String"). It is a
104 # multivalued attribute. When more than one value is present, each is
105 # the name of a class or interface, or ancestor class or interface, of
108 # This attribute's syntax is 'Directory String' and its case is
111 # ( 1.3.6.1.4.1.42.2.27.4.1.13
112 # NAME 'javaClassNames'
113 # DESC 'Fully qualified Java class or interface name'
114 # EQUALITY caseExactMatch
115 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
119 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.13
120 NAME 'javaClassNames'
121 DESC 'Fully qualified Java class or interface name'
122 EQUALITY caseExactMatch
123 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
125 # 3.4 javaSerializedData
127 # This attribute stores the serialized form of a Java object. The
128 # serialized form is described in [Serial].
130 # This attribute's syntax is 'Octet String'.
132 # ( 1.3.6.1.4.1.42.2.27.4.1.8
133 # NAME 'javaSerializedData
134 # DESC 'Serialized form of a Java object'
135 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
139 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.8
140 NAME 'javaSerializedData'
141 DESC 'Serialized form of a Java object'
142 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
147 # This attribute stores the fully qualified class name of the object
148 # factory (for example, "com.wiz.jndi.WizObjectFactory") that can be
149 # used to create an instance of the object identified by the
150 # javaClassName attribute.
152 # This attribute's syntax is 'Directory String' and its case is
155 # ( 1.3.6.1.4.1.42.2.27.4.1.10
157 # DESC 'Fully qualified Java class name of a JNDI object factory'
158 # EQUALITY caseExactMatch
159 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
163 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.10
165 DESC 'Fully qualified Java class name of a JNDI object factory'
166 EQUALITY caseExactMatch
167 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
170 # 3.6 javaReferenceAddress
172 # This attribute represents the sequence of addresses of a JNDI
173 # reference. Each of its values represents one address, a Java object
174 # of type javax.naming.RefAddr. Its value is a concatenation of the
175 # address type and address contents, preceded by a sequence number (the
176 # order of addresses in a JNDI reference is significant). For example:
180 # #2#TypeC##rO0ABXNyABpq...
182 # In more detail, the value is encoded as follows:
184 # The delimiter is the first character of the value. For readability
185 # the character '#' is recommended when it is not otherwise used
186 # anywhere in the value, but any character may be used subject to
187 # restrictions given below.
189 # The first delimiter is followed by the sequence number. The sequence
190 # number of an address is its position in the JNDI reference, with the
191 # first address being numbered 0. It is represented by its shortest
192 # string form, in decimal notation.
194 # The sequence number is followed by a delimiter, then by the address
195 # type, and then by another delimiter. If the address is of Java class
196 # javax.naming.StringRefAddr, then this delimiter is followed by the
197 # value of the address contents (which is a string). Otherwise, this
198 # delimiter is followed immediately by another delimiter, and then by
199 # the Base64 encoding of the serialized form of the entire address.
201 # The delimiter may be any character other than a digit or a character
202 # contained in the address type. In addition, if the address contents
203 # is a string, the delimiter may not be the first character of that
206 # This attribute's syntax is 'Directory String' and its case is
207 # significant. It can contain multiple values.
209 # ( 1.3.6.1.4.1.42.2.27.4.1.11
210 # NAME 'javaReferenceAddress'
211 # DESC 'Addresses associated with a JNDI Reference'
212 # EQUALITY caseExactMatch
213 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
216 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.11
217 NAME 'javaReferenceAddress'
218 DESC 'Addresses associated with a JNDI Reference'
219 EQUALITY caseExactMatch
220 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
224 # This attribute stores a pointer to the Java documentation for the
225 # class. It's value is a URL. For example, the following URL points to
226 # the specification of the java.lang.String class:
227 # http://java.sun.com/products/jdk/1.2/docs/api/java/lang/String.html
229 # This attribute's syntax is 'IA5 String' and its case is significant.
231 # ( 1.3.6.1.4.1.42.2.27.4.1.12
233 # DESC 'The Java documentation for the class'
234 # EQUALITY caseExactIA5Match
235 # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
238 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.12
240 DESC 'The Java documentation for the class'
241 EQUALITY caseExactIA5Match
242 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
244 # 4 Object Class Definitions
246 # The following object classes are defined in this document:
250 # javaSerializedObject
251 # javaMarshalledObject
252 # javaNamingReference
256 # This structural object class represents a container for a Java
259 # ( 1.3.6.1.4.1.42.2.27.4.2.1
260 # NAME 'javaContainer'
261 # DESC 'Container for a Java object'
267 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.1
269 DESC 'Container for a Java object'
276 # This abstract object class represents a Java object. A javaObject
277 # cannot exist in the directory; only auxiliary or structural
278 # subclasses of it can exist in the directory.
280 # ( 1.3.6.1.4.1.42.2.27.4.2.4
282 # DESC 'Java object representation'
285 # MUST ( javaClassName )
286 # MAY ( javaClassNames $
292 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.4
294 DESC 'Java object representation'
298 MAY ( javaClassNames $ javaCodebase $
299 javaDoc $ description ) )
301 # 4.3 javaSerializedObject
303 # This auxiliary object class represents a Java serialized object. It
304 # must be mixed in with a structural object class.
306 # ( 1.3.6.1.4.1.42.2.27.4.2.5
307 # NAME 'javaSerializedObject'
308 # DESC 'Java serialized object'
311 # MUST ( javaSerializedData )
314 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.5
315 NAME 'javaSerializedObject'
316 DESC 'Java serialized object'
319 MUST javaSerializedData )
321 # 4.4 javaMarshalledObject
323 # This auxiliary object class represents a Java marshalled object. It
324 # must be mixed in with a structural object class.
326 # ( 1.3.6.1.4.1.42.2.27.4.2.8
327 # NAME 'javaMarshalledObject'
328 # DESC 'Java marshalled object'
331 # MUST ( javaSerializedData )
334 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.8
335 NAME 'javaMarshalledObject'
336 DESC 'Java marshalled object'
339 MUST javaSerializedData )
341 # 4.5 javaNamingReference
343 # This auxiliary object class represents a JNDI reference. It must be
344 # mixed in with a structural object class.
346 # ( 1.3.6.1.4.1.42.2.27.4.2.7
347 # NAME 'javaNamingReference'
348 # DESC 'JNDI reference'
351 # MAY ( javaReferenceAddress $
355 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.7
356 NAME 'javaNamingReference'
357 DESC 'JNDI reference'
360 MAY ( javaReferenceAddress $ javaFactory ) )
362 # Full Copyright Statement
364 # Copyright (C) The Internet Society (1999). All Rights Reserved.
366 # This document and translations of it may be copied and furnished to
367 # others, and derivative works that comment on or otherwise explain it
368 # or assist in its implementation may be prepared, copied, published
369 # and distributed, in whole or in part, without restriction of any
370 # kind, provided that the above copyright notice and this paragraph are
371 # included on all such copies and derivative works. However, this
372 # document itself may not be modified in any way, such as by removing
373 # the copyright notice or references to the Internet Society or other
374 # Internet organizations, except as needed for the purpose of
375 # developing Internet standards in which case the procedures for
376 # copyrights defined in the Internet Standards process must be
377 # followed, or as required to translate it into languages other than
380 # The limited permissions granted above are perpetual and will not be
381 # revoked by the Internet Society or its successors or assigns.
383 # This document and the information contained herein is provided on an
384 # "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
385 # TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
386 # BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
387 # HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
388 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.