mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
404 lines
14 KiB
Plaintext
404 lines
14 KiB
Plaintext
# java.schema -- Java Object Schema
|
|
# $OpenLDAP$
|
|
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
|
|
##
|
|
## Copyright 1998-2019 The OpenLDAP Foundation.
|
|
## All rights reserved.
|
|
##
|
|
## Redistribution and use in source and binary forms, with or without
|
|
## modification, are permitted only as authorized by the OpenLDAP
|
|
## Public License.
|
|
##
|
|
## A copy of this license is available in the file LICENSE in the
|
|
## top-level directory of the distribution or, alternatively, at
|
|
## <http://www.OpenLDAP.org/license.html>.
|
|
#
|
|
# Java Object Schema (defined in RFC 2713)
|
|
# depends upon core.schema
|
|
#
|
|
|
|
# Network Working Group V. Ryan
|
|
# Request for Comments: 2713 S. Seligman
|
|
# Category: Informational R. Lee
|
|
# Sun Microsystems, Inc.
|
|
# October 1999
|
|
#
|
|
#
|
|
# Schema for Representing Java(tm) Objects in an LDAP Directory
|
|
#
|
|
# Status of this Memo
|
|
#
|
|
# This memo provides information for the Internet community. It does
|
|
# not specify an Internet standard of any kind. Distribution of this
|
|
# memo is unlimited.
|
|
#
|
|
# Copyright Notice
|
|
#
|
|
# Copyright (C) The Internet Society (1999). All Rights Reserved.
|
|
#
|
|
# Abstract
|
|
#
|
|
# This document defines the schema for representing Java(tm) objects in
|
|
# an LDAP directory [LDAPv3]. It defines schema elements to represent
|
|
# a Java serialized object [Serial], a Java marshalled object [RMI], a
|
|
# Java remote object [RMI], and a JNDI reference [JNDI].
|
|
#
|
|
|
|
# [trimmed]
|
|
|
|
# 3 Attribute Type Definitions
|
|
#
|
|
# The following attribute types are defined in this document:
|
|
#
|
|
# javaClassName
|
|
# javaClassNames
|
|
# javaCodebase
|
|
# javaSerializedData
|
|
# javaFactory
|
|
# javaReferenceAddress
|
|
# javaDoc
|
|
#
|
|
# 3.1 javaClassName
|
|
#
|
|
# This attribute stores the fully qualified name of the Java object's
|
|
# "distinguished" class or interface (for example, "java.lang.String").
|
|
# It is a single-valued attribute. This attribute's syntax is '
|
|
# Directory String' and its case is significant.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.1.6
|
|
# NAME 'javaClassName'
|
|
# DESC 'Fully qualified name of distinguished Java class or
|
|
# interface'
|
|
# EQUALITY caseExactMatch
|
|
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
|
|
# SINGLE-VALUE
|
|
# )
|
|
#
|
|
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.6
|
|
NAME 'javaClassName'
|
|
DESC 'Fully qualified name of distinguished Java class or interface'
|
|
EQUALITY caseExactMatch
|
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
|
|
SINGLE-VALUE )
|
|
|
|
# 3.2 javaCodebase
|
|
#
|
|
# This attribute stores the Java class definition's locations. It
|
|
# specifies the locations from which to load the class definition for
|
|
# the class specified by the javaClassName attribute. Each value of
|
|
# the attribute contains an ordered list of URLs, separated by spaces.
|
|
# For example, a value of "url1 url2 url3" means that the three
|
|
# (possibly interdependent) URLs (url1, url2, and url3) form the
|
|
# codebase for loading in the Java class definition.
|
|
#
|
|
# If the javaCodebase attribute contains more than one value, each
|
|
# value is an independent codebase. That is, there is no relationship
|
|
# between the URLs in one value and those in another; each value can be
|
|
# viewed as an alternate source for loading the Java class definition.
|
|
# See [Java] for information regarding class loading.
|
|
#
|
|
# This attribute's syntax is 'IA5 String' and its case is significant.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.1.7
|
|
# NAME 'javaCodebase'
|
|
# DESC 'URL(s) specifying the location of class definition'
|
|
# EQUALITY caseExactIA5Match
|
|
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
|
|
# )
|
|
#
|
|
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.7
|
|
NAME 'javaCodebase'
|
|
DESC 'URL(s) specifying the location of class definition'
|
|
EQUALITY caseExactIA5Match
|
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
|
|
|
# 3.3 javaClassNames
|
|
#
|
|
# This attribute stores the Java object's fully qualified class or
|
|
# interface names (for example, "java.lang.String"). It is a
|
|
# multivalued attribute. When more than one value is present, each is
|
|
# the name of a class or interface, or ancestor class or interface, of
|
|
# this object.
|
|
#
|
|
# This attribute's syntax is 'Directory String' and its case is
|
|
# significant.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.1.13
|
|
# NAME 'javaClassNames'
|
|
# DESC 'Fully qualified Java class or interface name'
|
|
# EQUALITY caseExactMatch
|
|
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
|
|
# )
|
|
#
|
|
#
|
|
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.13
|
|
NAME 'javaClassNames'
|
|
DESC 'Fully qualified Java class or interface name'
|
|
EQUALITY caseExactMatch
|
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
|
|
|
|
# 3.4 javaSerializedData
|
|
#
|
|
# This attribute stores the serialized form of a Java object. The
|
|
# serialized form is described in [Serial].
|
|
#
|
|
# This attribute's syntax is 'Octet String'.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.1.8
|
|
# NAME 'javaSerializedData
|
|
# DESC 'Serialized form of a Java object'
|
|
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
|
|
# SINGLE-VALUE
|
|
# )
|
|
#
|
|
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.8
|
|
NAME 'javaSerializedData'
|
|
DESC 'Serialized form of a Java object'
|
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
|
|
SINGLE-VALUE )
|
|
|
|
# 3.5 javaFactory
|
|
#
|
|
# This attribute stores the fully qualified class name of the object
|
|
# factory (for example, "com.wiz.jndi.WizObjectFactory") that can be
|
|
# used to create an instance of the object identified by the
|
|
# javaClassName attribute.
|
|
#
|
|
# This attribute's syntax is 'Directory String' and its case is
|
|
# significant.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.1.10
|
|
# NAME 'javaFactory'
|
|
# DESC 'Fully qualified Java class name of a JNDI object factory'
|
|
# EQUALITY caseExactMatch
|
|
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
|
|
# SINGLE-VALUE
|
|
# )
|
|
#
|
|
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.10
|
|
NAME 'javaFactory'
|
|
DESC 'Fully qualified Java class name of a JNDI object factory'
|
|
EQUALITY caseExactMatch
|
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
|
|
SINGLE-VALUE )
|
|
|
|
# 3.6 javaReferenceAddress
|
|
#
|
|
# This attribute represents the sequence of addresses of a JNDI
|
|
# reference. Each of its values represents one address, a Java object
|
|
# of type javax.naming.RefAddr. Its value is a concatenation of the
|
|
# address type and address contents, preceded by a sequence number (the
|
|
# order of addresses in a JNDI reference is significant). For example:
|
|
#
|
|
# #0#TypeA#ValA
|
|
# #1#TypeB#ValB
|
|
# #2#TypeC##rO0ABXNyABpq...
|
|
#
|
|
# In more detail, the value is encoded as follows:
|
|
#
|
|
# The delimiter is the first character of the value. For readability
|
|
# the character '#' is recommended when it is not otherwise used
|
|
# anywhere in the value, but any character may be used subject to
|
|
# restrictions given below.
|
|
#
|
|
# The first delimiter is followed by the sequence number. The sequence
|
|
# number of an address is its position in the JNDI reference, with the
|
|
# first address being numbered 0. It is represented by its shortest
|
|
# string form, in decimal notation.
|
|
#
|
|
# The sequence number is followed by a delimiter, then by the address
|
|
# type, and then by another delimiter. If the address is of Java class
|
|
# javax.naming.StringRefAddr, then this delimiter is followed by the
|
|
# value of the address contents (which is a string). Otherwise, this
|
|
# delimiter is followed immediately by another delimiter, and then by
|
|
# the Base64 encoding of the serialized form of the entire address.
|
|
#
|
|
# The delimiter may be any character other than a digit or a character
|
|
# contained in the address type. In addition, if the address contents
|
|
# is a string, the delimiter may not be the first character of that
|
|
# string.
|
|
#
|
|
# This attribute's syntax is 'Directory String' and its case is
|
|
# significant. It can contain multiple values.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.1.11
|
|
# NAME 'javaReferenceAddress'
|
|
# DESC 'Addresses associated with a JNDI Reference'
|
|
# EQUALITY caseExactMatch
|
|
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
|
|
# )
|
|
#
|
|
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.11
|
|
NAME 'javaReferenceAddress'
|
|
DESC 'Addresses associated with a JNDI Reference'
|
|
EQUALITY caseExactMatch
|
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
|
|
|
|
# 3.7 javaDoc
|
|
#
|
|
# This attribute stores a pointer to the Java documentation for the
|
|
# class. It's value is a URL. For example, the following URL points to
|
|
# the specification of the java.lang.String class:
|
|
# http://java.sun.com/products/jdk/1.2/docs/api/java/lang/String.html
|
|
#
|
|
# This attribute's syntax is 'IA5 String' and its case is significant.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.1.12
|
|
# NAME 'javaDoc'
|
|
# DESC 'The Java documentation for the class'
|
|
# EQUALITY caseExactIA5Match
|
|
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
|
|
# )
|
|
#
|
|
attributetype ( 1.3.6.1.4.1.42.2.27.4.1.12
|
|
NAME 'javaDoc'
|
|
DESC 'The Java documentation for the class'
|
|
EQUALITY caseExactIA5Match
|
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
|
|
|
# 4 Object Class Definitions
|
|
#
|
|
# The following object classes are defined in this document:
|
|
#
|
|
# javaContainer
|
|
# javaObject
|
|
# javaSerializedObject
|
|
# javaMarshalledObject
|
|
# javaNamingReference
|
|
#
|
|
# 4.1 javaContainer
|
|
#
|
|
# This structural object class represents a container for a Java
|
|
# object.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.2.1
|
|
# NAME 'javaContainer'
|
|
# DESC 'Container for a Java object'
|
|
# SUP top
|
|
# STRUCTURAL
|
|
# MUST ( cn )
|
|
# )
|
|
#
|
|
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.1
|
|
NAME 'javaContainer'
|
|
DESC 'Container for a Java object'
|
|
SUP top
|
|
STRUCTURAL
|
|
MUST cn )
|
|
|
|
# 4.2 javaObject
|
|
#
|
|
# This abstract object class represents a Java object. A javaObject
|
|
# cannot exist in the directory; only auxiliary or structural
|
|
# subclasses of it can exist in the directory.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.2.4
|
|
# NAME 'javaObject'
|
|
# DESC 'Java object representation'
|
|
# SUP top
|
|
# ABSTRACT
|
|
# MUST ( javaClassName )
|
|
# MAY ( javaClassNames $
|
|
# javaCodebase $
|
|
# javaDoc $
|
|
# description )
|
|
# )
|
|
#
|
|
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.4
|
|
NAME 'javaObject'
|
|
DESC 'Java object representation'
|
|
SUP top
|
|
ABSTRACT
|
|
MUST javaClassName
|
|
MAY ( javaClassNames $ javaCodebase $
|
|
javaDoc $ description ) )
|
|
|
|
# 4.3 javaSerializedObject
|
|
#
|
|
# This auxiliary object class represents a Java serialized object. It
|
|
# must be mixed in with a structural object class.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.2.5
|
|
# NAME 'javaSerializedObject'
|
|
# DESC 'Java serialized object'
|
|
# SUP javaObject
|
|
# AUXILIARY
|
|
# MUST ( javaSerializedData )
|
|
# )
|
|
#
|
|
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.5
|
|
NAME 'javaSerializedObject'
|
|
DESC 'Java serialized object'
|
|
SUP javaObject
|
|
AUXILIARY
|
|
MUST javaSerializedData )
|
|
|
|
# 4.4 javaMarshalledObject
|
|
#
|
|
# This auxiliary object class represents a Java marshalled object. It
|
|
# must be mixed in with a structural object class.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.2.8
|
|
# NAME 'javaMarshalledObject'
|
|
# DESC 'Java marshalled object'
|
|
# SUP javaObject
|
|
# AUXILIARY
|
|
# MUST ( javaSerializedData )
|
|
# )
|
|
#
|
|
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.8
|
|
NAME 'javaMarshalledObject'
|
|
DESC 'Java marshalled object'
|
|
SUP javaObject
|
|
AUXILIARY
|
|
MUST javaSerializedData )
|
|
|
|
# 4.5 javaNamingReference
|
|
#
|
|
# This auxiliary object class represents a JNDI reference. It must be
|
|
# mixed in with a structural object class.
|
|
#
|
|
# ( 1.3.6.1.4.1.42.2.27.4.2.7
|
|
# NAME 'javaNamingReference'
|
|
# DESC 'JNDI reference'
|
|
# SUP javaObject
|
|
# AUXILIARY
|
|
# MAY ( javaReferenceAddress $
|
|
# javaFactory )
|
|
# )
|
|
#
|
|
objectclass ( 1.3.6.1.4.1.42.2.27.4.2.7
|
|
NAME 'javaNamingReference'
|
|
DESC 'JNDI reference'
|
|
SUP javaObject
|
|
AUXILIARY
|
|
MAY ( javaReferenceAddress $ javaFactory ) )
|
|
|
|
# Full Copyright Statement
|
|
#
|
|
# Copyright (C) The Internet Society (1999). All Rights Reserved.
|
|
#
|
|
# This document and translations of it may be copied and furnished to
|
|
# others, and derivative works that comment on or otherwise explain it
|
|
# or assist in its implementation may be prepared, copied, published
|
|
# and distributed, in whole or in part, without restriction of any
|
|
# kind, provided that the above copyright notice and this paragraph are
|
|
# included on all such copies and derivative works. However, this
|
|
# document itself may not be modified in any way, such as by removing
|
|
# the copyright notice or references to the Internet Society or other
|
|
# Internet organizations, except as needed for the purpose of
|
|
# developing Internet standards in which case the procedures for
|
|
# copyrights defined in the Internet Standards process must be
|
|
# followed, or as required to translate it into languages other than
|
|
# English.
|
|
#
|
|
# The limited permissions granted above are perpetual and will not be
|
|
# revoked by the Internet Society or its successors or assigns.
|
|
#
|
|
# This document and the information contained herein is provided on an
|
|
# "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
|
# TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
|
# BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
|
# HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
|
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|