Subversion Repositories configs

Rev

Rev 4 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 - 1
# java.schema -- Java Object Schema
9 - 2
# $OpenLDAP$
4 - 3
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4
##
9 - 5
## Copyright 1998-2014 The OpenLDAP Foundation.
4 - 6
## All rights reserved.
7
##
8
## Redistribution and use in source and binary forms, with or without
9
## modification, are permitted only as authorized by the OpenLDAP
10
## Public License.
11
##
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>.
15
#
16
# Java Object Schema (defined in RFC 2713)
17
#	depends upon core.schema
18
#
19
 
20
# Network Working Group                                            V. Ryan
21
# Request for Comments: 2713                                   S. Seligman
22
# Category: Informational                                           R. Lee
23
#                                                   Sun Microsystems, Inc.
24
#                                                             October 1999
25
#
26
#
27
#      Schema for Representing Java(tm) Objects in an LDAP Directory
28
#
29
# Status of this Memo
30
#
31
#    This memo provides information for the Internet community.  It does
32
#    not specify an Internet standard of any kind.  Distribution of this
33
#    memo is unlimited.
34
#
35
# Copyright Notice
36
#
37
#    Copyright (C) The Internet Society (1999).  All Rights Reserved.
38
#
39
# Abstract
40
#
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].
45
#
46
 
47
# [trimmed]
48
 
49
# 3 Attribute Type Definitions
50
#
51
#    The following attribute types are defined in this document:
52
#
53
#        javaClassName
54
#        javaClassNames
55
#        javaCodebase
56
#        javaSerializedData
57
#        javaFactory
58
#        javaReferenceAddress
59
#        javaDoc
60
#
61
# 3.1 javaClassName
62
#
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.
67
#
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
71
#                interface'
72
#          EQUALITY caseExactMatch
73
#          SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
74
#          SINGLE-VALUE
75
#        )
76
#
77
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.6
78
	NAME 'javaClassName'
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
82
	SINGLE-VALUE )
83
 
84
# 3.2 javaCodebase
85
#
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.
93
#
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.
99
#
100
#    This attribute's syntax is 'IA5 String' and its case is significant.
101
#
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
107
#        )
108
#
109
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.7
110
	NAME 'javaCodebase'
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 )
114
 
115
# 3.3 javaClassNames
116
#
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
121
#    this object.
122
#
123
#    This attribute's syntax is 'Directory String' and its case is
124
#    significant.
125
#
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
131
#        )
132
#
133
#
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 )
139
 
140
# 3.4 javaSerializedData
141
#
142
#    This attribute stores the serialized form of a Java object.  The
143
#    serialized form is described in [Serial].
144
#
145
#    This attribute's syntax is 'Octet String'.
146
#
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
151
#          SINGLE-VALUE
152
#        )
153
#
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
158
	SINGLE-VALUE )
159
 
160
# 3.5 javaFactory
161
#
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.
166
#
167
#    This attribute's syntax is 'Directory String' and its case is
168
#    significant.
169
#
170
#        ( 1.3.6.1.4.1.42.2.27.4.1.10
171
#          NAME 'javaFactory'
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
175
#          SINGLE-VALUE
176
#        )
177
#
178
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.10
179
	NAME 'javaFactory'
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
183
	SINGLE-VALUE )
184
 
185
# 3.6 javaReferenceAddress
186
#
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:
192
#
193
#        #0#TypeA#ValA
194
#        #1#TypeB#ValB
195
#        #2#TypeC##rO0ABXNyABpq...
196
#
197
#    In more detail, the value is encoded as follows:
198
#
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.
203
#
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.
208
#
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.
215
#
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
219
#    string.
220
#
221
#    This attribute's syntax is 'Directory String' and its case is
222
#    significant.  It can contain multiple values.
223
#
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
229
#        )
230
#
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 )
236
 
237
# 3.7 javaDoc
238
#
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
243
#
244
#    This attribute's syntax is 'IA5 String' and its case is significant.
245
#
246
#        ( 1.3.6.1.4.1.42.2.27.4.1.12
247
#          NAME 'javaDoc'
248
#          DESC 'The Java documentation for the class'
249
#          EQUALITY caseExactIA5Match
250
#          SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
251
#        )
252
#
253
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.12
254
	NAME 'javaDoc'
255
	DESC 'The Java documentation for the class'
256
	EQUALITY caseExactIA5Match
257
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
258
 
259
# 4 Object Class Definitions
260
#
261
#    The following object classes are defined in this document:
262
#
263
#        javaContainer
264
#        javaObject
265
#        javaSerializedObject
266
#        javaMarshalledObject
267
#        javaNamingReference
268
#
269
# 4.1 javaContainer
270
#
271
#    This structural object class represents a container for a Java
272
#    object.
273
#
274
#        ( 1.3.6.1.4.1.42.2.27.4.2.1
275
#          NAME 'javaContainer'
276
#          DESC 'Container for a Java object'
277
#          SUP top
278
#          STRUCTURAL
279
#          MUST ( cn )
280
#        )
281
#
282
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.1
283
	NAME 'javaContainer'
284
	DESC 'Container for a Java object'
285
	SUP top
286
	STRUCTURAL
287
	MUST cn )
288
 
289
# 4.2 javaObject
290
#
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.
294
#
295
#        ( 1.3.6.1.4.1.42.2.27.4.2.4
296
#          NAME 'javaObject'
297
#          DESC 'Java object representation'
298
#          SUP top
299
#          ABSTRACT
300
#          MUST ( javaClassName )
301
#          MAY ( javaClassNames $
302
#                javaCodebase $
303
#                javaDoc $
304
#                description )
305
#        )
306
#
307
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.4
308
	NAME 'javaObject'
309
	DESC 'Java object representation'
310
	SUP top
311
	ABSTRACT
312
	MUST javaClassName
313
	MAY ( javaClassNames $ javaCodebase $
314
		javaDoc $ description ) )
315
 
316
# 4.3 javaSerializedObject
317
#
318
#    This auxiliary object class represents a Java serialized object.  It
319
#    must be mixed in with a structural object class.
320
#
321
#        ( 1.3.6.1.4.1.42.2.27.4.2.5
322
#          NAME 'javaSerializedObject'
323
#          DESC 'Java serialized object'
324
#          SUP javaObject
325
#          AUXILIARY
326
#          MUST ( javaSerializedData )
327
#        )
328
#
329
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.5
330
	NAME 'javaSerializedObject'
331
	DESC 'Java serialized object'
332
	SUP javaObject
333
	AUXILIARY
334
	MUST javaSerializedData )
335
 
336
# 4.4 javaMarshalledObject
337
#
338
#    This auxiliary object class represents a Java marshalled object.  It
339
#    must be mixed in with a structural object class.
340
#
341
#        ( 1.3.6.1.4.1.42.2.27.4.2.8
342
#          NAME 'javaMarshalledObject'
343
#          DESC 'Java marshalled object'
344
#          SUP javaObject
345
#          AUXILIARY
346
#          MUST ( javaSerializedData )
347
#        )
348
#
349
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.8
350
	NAME 'javaMarshalledObject'
351
	DESC 'Java marshalled object'
352
	SUP javaObject
353
	AUXILIARY
354
	MUST javaSerializedData )
355
 
356
# 4.5 javaNamingReference
357
#
358
#    This auxiliary object class represents a JNDI reference.  It must be
359
#    mixed in with a structural object class.
360
#
361
#        ( 1.3.6.1.4.1.42.2.27.4.2.7
362
#          NAME 'javaNamingReference'
363
#          DESC 'JNDI reference'
364
#          SUP javaObject
365
#          AUXILIARY
366
#          MAY ( javaReferenceAddress $
367
#                javaFactory )
368
#        )
369
#
370
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.7
371
	NAME 'javaNamingReference'
372
	DESC 'JNDI reference'
373
	SUP javaObject
374
	AUXILIARY
375
	MAY ( javaReferenceAddress $ javaFactory ) )
376
 
377
# Full Copyright Statement
378
#
379
#    Copyright (C) The Internet Society (1999).  All Rights Reserved.
380
#
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
393
#    English.
394
#
395
#    The limited permissions granted above are perpetual and will not be
396
#    revoked by the Internet Society or its successors or assigns.
397
#
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.