rubynas 0.1.0.pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.