rubynas 0.1.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. data/.gitignore +23 -0
  2. data/.gitmodules +3 -0
  3. data/.rspec +2 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +196 -0
  7. data/Guardfile +8 -0
  8. data/LICENSE.txt +7 -0
  9. data/Procfile +2 -0
  10. data/README.md +151 -0
  11. data/Rakefile +14 -0
  12. data/Vagrantfile +99 -0
  13. data/bin/rubynas +63 -0
  14. data/config.ru +5 -0
  15. data/doc/README_FOR_APP +2 -0
  16. data/doc/macosx_shares.png +0 -0
  17. data/doc/shares_overview.png +0 -0
  18. data/lib/rubynas.rb +35 -0
  19. data/lib/rubynas/apis/group_api.rb +51 -0
  20. data/lib/rubynas/apis/system_information_api.rb +13 -0
  21. data/lib/rubynas/apis/user_api.rb +85 -0
  22. data/lib/rubynas/apis/volume_api.rb +50 -0
  23. data/lib/rubynas/config.rb +63 -0
  24. data/lib/rubynas/db/migrate/20130302164415_devise_create_users.rb +46 -0
  25. data/lib/rubynas/db/migrate/20130322143040_create_volumes.rb +10 -0
  26. data/lib/rubynas/db/migrate/20130331102556_create_shared_folders.rb +10 -0
  27. data/lib/rubynas/db/migrate/20130331103034_create_shared_folder_services.rb +11 -0
  28. data/lib/rubynas/installers/base_installer.rb +70 -0
  29. data/lib/rubynas/installers/debian_installer.rb +199 -0
  30. data/lib/rubynas/installers/ubuntu_installer.rb +2 -0
  31. data/lib/rubynas/installers/ubuntu_precise_installer.rb +2 -0
  32. data/lib/rubynas/models/.gitkeep +0 -0
  33. data/lib/rubynas/models/ldap_group.rb +21 -0
  34. data/lib/rubynas/models/ldap_org_unit.rb +13 -0
  35. data/lib/rubynas/models/ldap_user.rb +31 -0
  36. data/lib/rubynas/models/shared_folder.rb +32 -0
  37. data/lib/rubynas/models/shared_folder_service.rb +15 -0
  38. data/lib/rubynas/models/volume.rb +16 -0
  39. data/lib/rubynas/services/afp_share_service.rb +9 -0
  40. data/lib/rubynas/services/service.rb +4 -0
  41. data/lib/rubynas/services/share_service.rb +3 -0
  42. data/lib/rubynas/version.rb +3 -0
  43. data/rubynas.gemspec +69 -0
  44. data/rubynas.ini +24 -0
  45. data/sandbox/ldap/base.ldif +50 -0
  46. data/sandbox/ldap/data/.gitkeep +0 -0
  47. data/sandbox/ldap/data/dc=rubynas,dc=com.ldif +14 -0
  48. data/sandbox/ldap/local.schema +6 -0
  49. data/sandbox/ldap/schema/README +80 -0
  50. data/sandbox/ldap/schema/apple.schema +1727 -0
  51. data/sandbox/ldap/schema/apple_auxillary.schema +20 -0
  52. data/sandbox/ldap/schema/collective.ldif +48 -0
  53. data/sandbox/ldap/schema/collective.schema +190 -0
  54. data/sandbox/ldap/schema/corba.ldif +42 -0
  55. data/sandbox/ldap/schema/corba.schema +239 -0
  56. data/sandbox/ldap/schema/core.ldif +591 -0
  57. data/sandbox/ldap/schema/core.schema +610 -0
  58. data/sandbox/ldap/schema/cosine.ldif +200 -0
  59. data/sandbox/ldap/schema/cosine.schema +2571 -0
  60. data/sandbox/ldap/schema/duaconf.ldif +83 -0
  61. data/sandbox/ldap/schema/duaconf.schema +261 -0
  62. data/sandbox/ldap/schema/dyngroup.ldif +71 -0
  63. data/sandbox/ldap/schema/dyngroup.schema +91 -0
  64. data/sandbox/ldap/schema/fmserver.schema +60 -0
  65. data/sandbox/ldap/schema/inetorgperson.ldif +69 -0
  66. data/sandbox/ldap/schema/inetorgperson.schema +155 -0
  67. data/sandbox/ldap/schema/java.ldif +59 -0
  68. data/sandbox/ldap/schema/java.schema +403 -0
  69. data/sandbox/ldap/schema/krb5-kdc.schema +134 -0
  70. data/sandbox/ldap/schema/microsoft.ext.schema +5383 -0
  71. data/sandbox/ldap/schema/microsoft.schema +4835 -0
  72. data/sandbox/ldap/schema/microsoft.std.schema +480 -0
  73. data/sandbox/ldap/schema/misc.ldif +45 -0
  74. data/sandbox/ldap/schema/misc.schema +75 -0
  75. data/sandbox/ldap/schema/netinfo.schema +240 -0
  76. data/sandbox/ldap/schema/nis.ldif +120 -0
  77. data/sandbox/ldap/schema/nis.schema +241 -0
  78. data/sandbox/ldap/schema/openldap.ldif +88 -0
  79. data/sandbox/ldap/schema/openldap.schema +54 -0
  80. data/sandbox/ldap/schema/pmi.ldif +123 -0
  81. data/sandbox/ldap/schema/pmi.schema +464 -0
  82. data/sandbox/ldap/schema/ppolicy.ldif +75 -0
  83. data/sandbox/ldap/schema/ppolicy.schema +531 -0
  84. data/sandbox/ldap/schema/samba.schema +179 -0
  85. data/sandbox/ldap/slapd.conf +99 -0
  86. data/spec/apis/group_api_spec.rb +97 -0
  87. data/spec/apis/system_information_api_spec.rb +27 -0
  88. data/spec/apis/user_api_spec.rb +113 -0
  89. data/spec/apis/volume_api_spec.rb +98 -0
  90. data/spec/factories/ldap_group.rb +16 -0
  91. data/spec/factories/ldap_users.rb +24 -0
  92. data/spec/factories/shared_folder_services.rb +9 -0
  93. data/spec/factories/shared_folders.rb +15 -0
  94. data/spec/factories/users.rb +8 -0
  95. data/spec/factories/volumes.rb +10 -0
  96. data/spec/installer/base_installer_spec.rb +35 -0
  97. data/spec/installer/debian_installer_spec.rb +86 -0
  98. data/spec/models/ldap_group_spec.rb +21 -0
  99. data/spec/models/ldap_org_unit_spec.rb +19 -0
  100. data/spec/models/ldap_user_spec.rb +19 -0
  101. data/spec/models/shared_folder_service_spec.rb +25 -0
  102. data/spec/models/shared_folder_spec.rb +27 -0
  103. data/spec/models/volume_spec.rb +5 -0
  104. data/spec/services/afp_share_service_spec.rb +5 -0
  105. data/spec/services/service_spec.rb +5 -0
  106. data/spec/services/share_service_spec.rb +5 -0
  107. data/spec/spec_helper.rb +30 -0
  108. data/spec/support/db_cleaner.rb +16 -0
  109. data/spec/support/factory_girl.rb +7 -0
  110. data/spec/support/logger.rb +1 -0
  111. data/spec/support/rack-test.rb +6 -0
  112. metadata +633 -0
@@ -0,0 +1,60 @@
1
+ # $OpenLDAP: /etc/openldap/schema/fms.schema,v 1.0.0.0 2001/06/28 21:35:00 Exp $
2
+ #
3
+ #
4
+ #
5
+ # Name:
6
+ #
7
+ # fmserver.schema
8
+ #
9
+ # -------------------------------------------------
10
+ # attribute definitions
11
+ # -------------------------------------------------
12
+ #
13
+ attributeType ( 1.2.840.113556.1.4.509 NAME 'serviceClassName'
14
+ DESC 'MSDS serviceClassName'
15
+ EQUALITY caseIgnoreIA5Match
16
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
17
+ SINGLE-VALUE )
18
+ attributeType ( 1.2.840.113556.1.4.510 NAME 'serviceBindingInformation'
19
+ DESC 'MSDS serviceBindingInformation'
20
+ EQUALITY caseIgnoreIA5Match
21
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
22
+ SINGLE-VALUE )
23
+ attributeType ( 1.2.840.113556.1.4.653 NAME 'managedBy'
24
+ DESC 'MSDS managedBy'
25
+ EQUALITY caseExactIA5Match
26
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
27
+ SINGLE-VALUE )
28
+ attributeType ( 1.2.840.113556.1.4.657 NAME 'serviceDNSName'
29
+ DESC 'Microsoft Active Directory Attribute'
30
+ EQUALITY caseIgnoreIA5Match
31
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
32
+ SINGLE-VALUE )
33
+ attributeType ( 1.2.840.113556.1.4.659 NAME 'serviceDNSNameType'
34
+ DESC 'Microsoft Active Directory Attribute'
35
+ EQUALITY caseIgnoreIA5Match
36
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
37
+ SINGLE-VALUE )
38
+ attributeType ( 1.2.840.113556.1.4.48 NAME 'keywords'
39
+ DESC 'Microsoft Active Directory Attribute'
40
+ EQUALITY caseExactMatch
41
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
42
+
43
+ # -------------------------------------------------
44
+ # object class definitions
45
+ # -------------------------------------------------
46
+ #
47
+ objectClass ( 1.2.840.113556.1.5.20 NAME 'leaf'
48
+ DESC 'Microsoft Active Directory Leaf Object'
49
+ SUP ( top ) )
50
+ objectClass ( 1.2.840.113556.1.5.14 NAME 'connectionPoint'
51
+ DESC 'Microsoft Active Directory ConnectPoint Object'
52
+ SUP ( leaf )
53
+ MUST ( cn )
54
+ MAY ( keywords $ managedBy ) )
55
+ objectClass ( 1.2.840.113556.1.5.126 NAME 'serviceConnectionPoint'
56
+ DESC 'Microsoft Active Directory ServiceConnectionPoint Object'
57
+ SUP ( connectionPoint )
58
+ MUST ( name $ serviceBindingInformation)
59
+ MAY ( l $ mail $ owner $ serviceClassName $ serviceDNSName $ serviceDNSNameType $ telephonenumber $ description ) )
60
+
@@ -0,0 +1,69 @@
1
+ # InetOrgPerson (RFC2798)
2
+ # $OpenLDAP$
3
+ ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4
+ ##
5
+ ## Copyright 1998-2011 The OpenLDAP Foundation.
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
+ # InetOrgPerson (RFC2798)
17
+ #
18
+ # Depends upon
19
+ # Definition of an X.500 Attribute Type and an Object Class to Hold
20
+ # Uniform Resource Identifiers (URIs) [RFC2079]
21
+ # (core.ldif)
22
+ #
23
+ # A Summary of the X.500(96) User Schema for use with LDAPv3 [RFC2256]
24
+ # (core.ldif)
25
+ #
26
+ # The COSINE and Internet X.500 Schema [RFC1274] (cosine.ldif)
27
+ #
28
+ # This file was automatically generated from inetorgperson.schema; see
29
+ # that file for complete references.
30
+ #
31
+ dn: cn=inetorgperson,cn=schema,cn=config
32
+ objectClass: olcSchemaConfig
33
+ cn: inetorgperson
34
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'RFC279
35
+ 8: vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR cas
36
+ eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
37
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.2 NAME 'departmentNumber' DESC '
38
+ RFC2798: identifies a department within an organization' EQUALITY caseIgnoreM
39
+ atch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
40
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'RFC
41
+ 2798: preferred name to be used when displaying entries' EQUALITY caseIgnoreM
42
+ atch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SI
43
+ NGLE-VALUE )
44
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.3 NAME 'employeeNumber' DESC 'RF
45
+ C2798: numerically identifies an employee within an organization' EQUALITY ca
46
+ seIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.12
47
+ 1.1.15 SINGLE-VALUE )
48
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.4 NAME 'employeeType' DESC 'RFC2
49
+ 798: type of employment for a person' EQUALITY caseIgnoreMatch SUBSTR caseIgn
50
+ oreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
51
+ olcAttributeTypes: ( 0.9.2342.19200300.100.1.60 NAME 'jpegPhoto' DESC 'RFC2
52
+ 798: a JPEG image' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 )
53
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.39 NAME 'preferredLanguage' DESC
54
+ 'RFC2798: preferred written or spoken language for a person' EQUALITY caseIg
55
+ noreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.
56
+ 15 SINGLE-VALUE )
57
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.40 NAME 'userSMIMECertificate' D
58
+ ESC 'RFC2798: PKCS#7 SignedData used to support S/MIME' SYNTAX 1.3.6.1.4.1.14
59
+ 66.115.121.1.5 )
60
+ olcAttributeTypes: ( 2.16.840.1.113730.3.1.216 NAME 'userPKCS12' DESC 'RFC2
61
+ 798: personal identity information, a PKCS #12 PFX' SYNTAX 1.3.6.1.4.1.1466.1
62
+ 15.121.1.5 )
63
+ olcObjectClasses: ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RFC2
64
+ 798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL MAY
65
+ ( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ em
66
+ ployeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ ini
67
+ tials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo
68
+ $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIdentifier $ pre
69
+ ferredLanguage $ userSMIMECertificate $ userPKCS12 ) )
@@ -0,0 +1,155 @@
1
+ # inetorgperson.schema -- InetOrgPerson (RFC2798)
2
+ # $OpenLDAP$
3
+ ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4
+ ##
5
+ ## Copyright 1998-2011 The OpenLDAP Foundation.
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
+ # InetOrgPerson (RFC2798)
17
+ #
18
+ # Depends upon
19
+ # Definition of an X.500 Attribute Type and an Object Class to Hold
20
+ # Uniform Resource Identifiers (URIs) [RFC2079]
21
+ # (core.schema)
22
+ #
23
+ # A Summary of the X.500(96) User Schema for use with LDAPv3 [RFC2256]
24
+ # (core.schema)
25
+ #
26
+ # The COSINE and Internet X.500 Schema [RFC1274] (cosine.schema)
27
+
28
+ # carLicense
29
+ # This multivalued field is used to record the values of the license or
30
+ # registration plate associated with an individual.
31
+ attributetype ( 2.16.840.1.113730.3.1.1
32
+ NAME 'carLicense'
33
+ DESC 'RFC2798: vehicle license or registration plate'
34
+ EQUALITY caseIgnoreMatch
35
+ SUBSTR caseIgnoreSubstringsMatch
36
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
37
+
38
+ # departmentNumber
39
+ # Code for department to which a person belongs. This can also be
40
+ # strictly numeric (e.g., 1234) or alphanumeric (e.g., ABC/123).
41
+ attributetype ( 2.16.840.1.113730.3.1.2
42
+ NAME 'departmentNumber'
43
+ DESC 'RFC2798: identifies a department within an organization'
44
+ EQUALITY caseIgnoreMatch
45
+ SUBSTR caseIgnoreSubstringsMatch
46
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
47
+
48
+ # displayName
49
+ # When displaying an entry, especially within a one-line summary list, it
50
+ # is useful to be able to identify a name to be used. Since other attri-
51
+ # bute types such as 'cn' are multivalued, an additional attribute type is
52
+ # needed. Display name is defined for this purpose.
53
+ attributetype ( 2.16.840.1.113730.3.1.241
54
+ NAME 'displayName'
55
+ DESC 'RFC2798: preferred name to be used when displaying entries'
56
+ EQUALITY caseIgnoreMatch
57
+ SUBSTR caseIgnoreSubstringsMatch
58
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
59
+ SINGLE-VALUE )
60
+
61
+ # employeeNumber
62
+ # Numeric or alphanumeric identifier assigned to a person, typically based
63
+ # on order of hire or association with an organization. Single valued.
64
+ attributetype ( 2.16.840.1.113730.3.1.3
65
+ NAME 'employeeNumber'
66
+ DESC 'RFC2798: numerically identifies an employee within an organization'
67
+ EQUALITY caseIgnoreMatch
68
+ SUBSTR caseIgnoreSubstringsMatch
69
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
70
+ SINGLE-VALUE )
71
+
72
+ # employeeType
73
+ # Used to identify the employer to employee relationship. Typical values
74
+ # used will be "Contractor", "Employee", "Intern", "Temp", "External", and
75
+ # "Unknown" but any value may be used.
76
+ attributetype ( 2.16.840.1.113730.3.1.4
77
+ NAME 'employeeType'
78
+ DESC 'RFC2798: type of employment for a person'
79
+ EQUALITY caseIgnoreMatch
80
+ SUBSTR caseIgnoreSubstringsMatch
81
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
82
+
83
+ # jpegPhoto
84
+ # Used to store one or more images of a person using the JPEG File
85
+ # Interchange Format [JFIF].
86
+ # Note that the jpegPhoto attribute type was defined for use in the
87
+ # Internet X.500 pilots but no referencable definition for it could be
88
+ # located.
89
+ attributetype ( 0.9.2342.19200300.100.1.60
90
+ NAME 'jpegPhoto'
91
+ DESC 'RFC2798: a JPEG image'
92
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 )
93
+
94
+ # preferredLanguage
95
+ # Used to indicate an individual's preferred written or spoken
96
+ # language. This is useful for international correspondence or human-
97
+ # computer interaction. Values for this attribute type MUST conform to
98
+ # the definition of the Accept-Language header field defined in
99
+ # [RFC2068] with one exception: the sequence "Accept-Language" ":"
100
+ # should be omitted. This is a single valued attribute type.
101
+ attributetype ( 2.16.840.1.113730.3.1.39
102
+ NAME 'preferredLanguage'
103
+ DESC 'RFC2798: preferred written or spoken language for a person'
104
+ EQUALITY caseIgnoreMatch
105
+ SUBSTR caseIgnoreSubstringsMatch
106
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
107
+ SINGLE-VALUE )
108
+
109
+ # userSMIMECertificate
110
+ # A PKCS#7 [RFC2315] SignedData, where the content that is signed is
111
+ # ignored by consumers of userSMIMECertificate values. It is
112
+ # recommended that values have a `contentType' of data with an absent
113
+ # `content' field. Values of this attribute contain a person's entire
114
+ # certificate chain and an smimeCapabilities field [RFC2633] that at a
115
+ # minimum describes their SMIME algorithm capabilities. Values for
116
+ # this attribute are to be stored and requested in binary form, as
117
+ # 'userSMIMECertificate;binary'. If available, this attribute is
118
+ # preferred over the userCertificate attribute for S/MIME applications.
119
+ ## OpenLDAP note: ";binary" transfer should NOT be used as syntax is binary
120
+ attributetype ( 2.16.840.1.113730.3.1.40
121
+ NAME 'userSMIMECertificate'
122
+ DESC 'RFC2798: PKCS#7 SignedData used to support S/MIME'
123
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 )
124
+
125
+ # userPKCS12
126
+ # PKCS #12 [PKCS12] provides a format for exchange of personal identity
127
+ # information. When such information is stored in a directory service,
128
+ # the userPKCS12 attribute should be used. This attribute is to be stored
129
+ # and requested in binary form, as 'userPKCS12;binary'. The attribute
130
+ # values are PFX PDUs stored as binary data.
131
+ ## OpenLDAP note: ";binary" transfer should NOT be used as syntax is binary
132
+ attributetype ( 2.16.840.1.113730.3.1.216
133
+ NAME 'userPKCS12'
134
+ DESC 'RFC2798: personal identity information, a PKCS #12 PFX'
135
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 )
136
+
137
+
138
+ # inetOrgPerson
139
+ # The inetOrgPerson represents people who are associated with an
140
+ # organization in some way. It is a structural class and is derived
141
+ # from the organizationalPerson which is defined in X.521 [X521].
142
+ objectclass ( 2.16.840.1.113730.3.2.2
143
+ NAME 'inetOrgPerson'
144
+ DESC 'RFC2798: Internet Organizational Person'
145
+ SUP organizationalPerson
146
+ STRUCTURAL
147
+ MAY (
148
+ audio $ businessCategory $ carLicense $ departmentNumber $
149
+ displayName $ employeeNumber $ employeeType $ givenName $
150
+ homePhone $ homePostalAddress $ initials $ jpegPhoto $
151
+ labeledURI $ mail $ manager $ mobile $ o $ pager $
152
+ photo $ roomNumber $ secretary $ uid $ userCertificate $
153
+ x500uniqueIdentifier $ preferredLanguage $
154
+ userSMIMECertificate $ userPKCS12 )
155
+ )
@@ -0,0 +1,59 @@
1
+ # java.ldif -- Java Object Schema
2
+ # $OpenLDAP$
3
+ ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4
+ ##
5
+ ## Copyright 1998-2011 The OpenLDAP Foundation.
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.ldif
18
+ #
19
+ # This file was automatically generated from java.schema; see that file
20
+ # for complete references.
21
+ #
22
+ dn: cn=java,cn=schema,cn=config
23
+ objectClass: olcSchemaConfig
24
+ cn: java
25
+ olcAttributeTypes: {0}( 1.3.6.1.4.1.42.2.27.4.1.6 NAME 'javaClassName' DESC 'F
26
+ ully qualified name of distinguished Java class or interface' EQUALITY caseEx
27
+ actMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
28
+ olcAttributeTypes: {1}( 1.3.6.1.4.1.42.2.27.4.1.7 NAME 'javaCodebase' DESC 'UR
29
+ L(s) specifying the location of class definition' EQUALITY caseExactIA5Match
30
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
31
+ olcAttributeTypes: {2}( 1.3.6.1.4.1.42.2.27.4.1.13 NAME 'javaClassNames' DESC
32
+ 'Fully qualified Java class or interface name' EQUALITY caseExactMatch SYNTAX
33
+ 1.3.6.1.4.1.1466.115.121.1.15 )
34
+ olcAttributeTypes: {3}( 1.3.6.1.4.1.42.2.27.4.1.8 NAME 'javaSerializedData' DE
35
+ SC 'Serialized form of a Java object' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SI
36
+ NGLE-VALUE )
37
+ olcAttributeTypes: {4}( 1.3.6.1.4.1.42.2.27.4.1.10 NAME 'javaFactory' DESC 'Fu
38
+ lly qualified Java class name of a JNDI object factory' EQUALITY caseExactMat
39
+ ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
40
+ olcAttributeTypes: {5}( 1.3.6.1.4.1.42.2.27.4.1.11 NAME 'javaReferenceAddress'
41
+ DESC 'Addresses associated with a JNDI Reference' EQUALITY caseExactMatch SY
42
+ NTAX 1.3.6.1.4.1.1466.115.121.1.15 )
43
+ olcAttributeTypes: {6}( 1.3.6.1.4.1.42.2.27.4.1.12 NAME 'javaDoc' DESC 'The Ja
44
+ va documentation for the class' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1
45
+ .1466.115.121.1.26 )
46
+ olcObjectClasses: {0}( 1.3.6.1.4.1.42.2.27.4.2.1 NAME 'javaContainer' DESC 'Co
47
+ ntainer for a Java object' SUP top STRUCTURAL MUST cn )
48
+ olcObjectClasses: {1}( 1.3.6.1.4.1.42.2.27.4.2.4 NAME 'javaObject' DESC 'Java
49
+ object representation' SUP top ABSTRACT MUST javaClassName MAY ( javaClassNam
50
+ es $ javaCodebase $ javaDoc $ description ) )
51
+ olcObjectClasses: {2}( 1.3.6.1.4.1.42.2.27.4.2.5 NAME 'javaSerializedObject' D
52
+ ESC 'Java serialized object' SUP javaObject AUXILIARY MUST javaSerializedData
53
+ )
54
+ olcObjectClasses: {3}( 1.3.6.1.4.1.42.2.27.4.2.8 NAME 'javaMarshalledObject' D
55
+ ESC 'Java marshalled object' SUP javaObject AUXILIARY MUST javaSerializedData
56
+ )
57
+ olcObjectClasses: {4}( 1.3.6.1.4.1.42.2.27.4.2.7 NAME 'javaNamingReference' DE
58
+ SC 'JNDI reference' SUP javaObject AUXILIARY MAY ( javaReferenceAddress $ jav
59
+ aFactory ) )
@@ -0,0 +1,403 @@
1
+ # java.schema -- Java Object Schema
2
+ # $OpenLDAP$
3
+ ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4
+ ##
5
+ ## Copyright 1998-2011 The OpenLDAP Foundation.
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.