From 344b91e2577f651256ee5ef557a38a48c49fba09 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Mon, 11 Sep 2000 20:27:35 +0000 Subject: [PATCH] Add Java (RFC2713) and Corba (RFC2714) schema --- servers/slapd/schema/README | 2 + servers/slapd/schema/corba.schema | 222 +++++++++++++++++ servers/slapd/schema/java.schema | 388 ++++++++++++++++++++++++++++++ 3 files changed, 612 insertions(+) create mode 100644 servers/slapd/schema/corba.schema create mode 100644 servers/slapd/schema/java.schema diff --git a/servers/slapd/schema/README b/servers/slapd/schema/README index 97416890be..2216b28f2e 100644 --- a/servers/slapd/schema/README +++ b/servers/slapd/schema/README @@ -2,9 +2,11 @@ This directory contains schema definitions for use with slapd(5). File Description ---- ----------- +corba.schema Corba Object (RFC 2714) schema core.schema OpenLDAP "core" cosine.schema COSINE Pilot schema inetorgperson.schema InetOrgPerson schema +java.schema Java Object (RFC 2713) schema krb5-kdc.schema Kerberos V KDC schema microsoft.ext.schema Microsoft schema microsoft.schema Microsoft schema diff --git a/servers/slapd/schema/corba.schema b/servers/slapd/schema/corba.schema new file mode 100644 index 0000000000..bd9ca36443 --- /dev/null +++ b/servers/slapd/schema/corba.schema @@ -0,0 +1,222 @@ +# Corba Object Schema +# $OpenLDAP$ +# depends upon core.schema + +# Network Working Group V. Ryan +# Request for Comments: 2714 R. Lee +# Category: Informational S. Seligman +# Sun Microsystems, Inc. +# October 1999 +# +# +# Schema for Representing CORBA Object References 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 +# +# CORBA [CORBA] is the Common Object Request Broker Architecture +# defined by the Object Management Group. This document defines the +# schema for representing CORBA object references in an LDAP directory +# [LDAPv3]. +# +# [trimmed] + +# 3. Attribute Type Definitions +# +# The following attribute types are defined in this document: +# +# corbaIor +# corbaRepositoryId +# +# 3.1 corbaIor +# +# This attribute stores the string representation of the interoperable +# object reference (IOR) for a CORBA object. An IOR is an opaque handle +# for the object which contains the information necessary to locate the +# object, even if the object is in another ORB. +# +# This attribute's syntax is 'IA5 String' and its case is +# insignificant. +# +# ( 1.3.6.1.4.1.42.2.27.4.1.14 +# NAME 'corbaIor' +# DESC 'Stringified interoperable object reference of a CORBA object' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 +# SINGLE-VALUE +# ) +# +attributetype ( 1.3.6.1.4.1.42.2.27.4.1.14 + NAME 'corbaIor' + DESC 'Stringified interoperable object reference of a CORBA object' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 + SINGLE-VALUE ) + +# 3.2 corbaRepositoryId +# +# Each CORBA interface has a unique "repository id" (also called "type +# id") that identifies the interface. A CORBA object has one or more +# repository ids, one for each interface that it implements. +# +# The format of a repository id can be any string, but the OMG +# specifies four standard formats: +# +# a. IDL-style +# +# IDL:Prefix/ModuleName/InterfaceName:VersionNumber +# +# For example, the repository id for the "NamingContext" in OMG's COS +# Naming module is: "IDL:omg.org/CosNaming/NamingContext:1.0". +# +# b. RMI-style +# +# RMI:ClassName:HashCode[:SUID] +# +# This format is used by RMI-IIOP remote objects [RMI-IIOP]. +# "ClassName" is the fully qualified name of the class (for example, +# "java.lang.String"). "HashCode" is the object's hash code (that is, +# that obtained by invoking the "hashCode()" method). "SUID" is the +# "stream unique identifier", which is a 64-bit number that uniquely +# identifies the serialization version of the class; SUID is optional +# in the repository id. +# +# c. DCE-style +# +# DCE:UUID +# +# This format is used for DCE/CORBA interoperability [CORBA-DCE]. +# "UUID" represents a DCE UUID. +# +# d. "local" +# +# This format is defined by the local Object Request Broker (ORB). +# +# The corbaRepositoryId attribute is a multivalued attribute; each +# value records a single repository id of an interface implemented by +# the CORBA object. This attribute need not contain a complete list of +# the interfaces implemented by the CORBA object. +# +# This attribute's syntax is 'Directory String' and its case is +# significant. The values of this attribute are encoded using UTF-8. +# Some values may require translation from their native representation +# in order to be correctly encoded using UTF-8. +# +# ( 1.3.6.1.4.1.42.2.27.4.1.15 +# NAME 'corbaRepositoryId' +# DESC 'Repository ids of interfaces implemented by a CORBA object' +# 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.15 + NAME 'corbaRepositoryId' + DESC 'Repository ids of interfaces implemented by a CORBA object' + EQUALITY caseExactMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) + +# 4. Object Class Definitions +# +# The following object classes are defined in this document: +# +# corbaContainer +# corbaObject +# corbaObjectReference +# +# 4.1 corbaContainer +# +# This structural object class represents a container for a CORBA +# object. +# +# ( 1.3.6.1.4.1.42.2.27.4.2.10 +# NAME 'corbaContainer' +# DESC 'Container for a CORBA object' +# SUP top +# STRUCTURAL +# MUST ( cn ) +# ) +# +objectclass ( 1.3.6.1.4.1.42.2.27.4.2.10 + NAME 'corbaContainer' + DESC 'Container for a CORBA object' + SUP top + STRUCTURAL + MUST cn ) + +# 4.2 corbaObject +# +# This abstract object class is the root class for representing a CORBA +# object. +# +# ( 1.3.6.1.4.1.42.2.27.4.2.9 +# NAME 'corbaObject' +# DESC 'CORBA object representation' +# SUP top +# ABSTRACT +# MAY ( corbaRepositoryId $ description ) +# ) +# +objectclass ( 1.3.6.1.4.1.42.2.27.4.2.9 + NAME 'corbaObject' + DESC 'CORBA object representation' + SUP top + ABSTRACT + MAY ( corbaRepositoryId $ description ) ) + +# 4.3 corbaObjectReference +# +# This auxiliary object class represents a CORBA object reference. It +# must be mixed in with a structural object class. +# +# ( 1.3.6.1.4.1.42.2.27.4.2.11 +# NAME 'corbaObjectReference' +# DESC 'CORBA interoperable object reference' +# SUP corbaObject +# AUXILIARY +# MUST ( corbaIor ) +# ) +# +objectclass ( 1.3.6.1.4.1.42.2.27.4.2.11 + NAME 'corbaObjectReference' + DESC 'CORBA interoperable object reference' + SUP corbaObject + AUXILIARY + MUST corbaIor ) + +# 10. 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. diff --git a/servers/slapd/schema/java.schema b/servers/slapd/schema/java.schema new file mode 100644 index 0000000000..9cbeef8293 --- /dev/null +++ b/servers/slapd/schema/java.schema @@ -0,0 +1,388 @@ +# Java Object Schema +# $OpenLDAP$ +# 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 +# ) +# +atttributetype ( 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. -- 2.39.5