Test-OpenLDAP
view release on metacpan or search on metacpan
lib/Test/OpenLDAP.pm view on Meta::CPAN
p STRUCTURAL MUST cn MAY ( serialNumber \$ seeAlso \$ owner \$ ou \$ o \$ l \$ desc
ription ) )
olcObjectClasses: {13}( 2.5.6.15 NAME 'strongAuthenticationUser' DESC 'RFC2256
: a strong authentication user' SUP top AUXILIARY MUST userCertificate )
olcObjectClasses: {14}( 2.5.6.16 NAME 'certificationAuthority' DESC 'RFC2256:
a certificate authority' SUP top AUXILIARY MUST ( authorityRevocationList \$ c
ertificateRevocationList \$ cACertificate ) MAY crossCertificatePair )
olcObjectClasses: {15}( 2.5.6.17 NAME 'groupOfUniqueNames' DESC 'RFC2256: a gr
oup of unique names (DN and Unique Identifier)' SUP top STRUCTURAL MUST ( uni
queMember \$ cn ) MAY ( businessCategory \$ seeAlso \$ owner \$ ou \$ o \$ descript
ion ) )
olcObjectClasses: {16}( 2.5.6.18 NAME 'userSecurityInformation' DESC 'RFC2256:
a user security information' SUP top AUXILIARY MAY supportedAlgorithms )
olcObjectClasses: {17}( 2.5.6.16.2 NAME 'certificationAuthority-V2' SUP certif
icationAuthority AUXILIARY MAY deltaRevocationList )
olcObjectClasses: {18}( 2.5.6.19 NAME 'cRLDistributionPoint' SUP top STRUCTURA
L MUST cn MAY ( certificateRevocationList \$ authorityRevocationList \$ deltaRe
vocationList ) )
olcObjectClasses: {19}( 2.5.6.20 NAME 'dmd' SUP top STRUCTURAL MUST dmdName MA
Y ( userPassword \$ searchGuide \$ seeAlso \$ businessCategory \$ x121Address \$ r
egisteredAddress \$ destinationIndicator \$ preferredDeliveryMethod \$ telexNumb
er \$ teletexTerminalIdentifier \$ telephoneNumber \$ internationaliSDNNumber \$
facsimileTelephoneNumber \$ street \$ postOfficeBox \$ postalCode \$ postalAddres
s \$ physicalDeliveryOfficeName \$ st \$ l \$ description ) )
olcObjectClasses: {20}( 2.5.6.21 NAME 'pkiUser' DESC 'RFC2587: a PKI user' SUP
top AUXILIARY MAY userCertificate )
olcObjectClasses: {21}( 2.5.6.22 NAME 'pkiCA' DESC 'RFC2587: PKI certificate a
uthority' SUP top AUXILIARY MAY ( authorityRevocationList \$ certificateRevoca
tionList \$ cACertificate \$ crossCertificatePair ) )
olcObjectClasses: {22}( 2.5.6.23 NAME 'deltaCRL' DESC 'RFC2587: PKI user' SUP
top AUXILIARY MAY deltaRevocationList )
olcObjectClasses: {23}( 1.3.6.1.4.1.250.3.15 NAME 'labeledURIObject' DESC 'RFC
2079: object that contains the URI attribute type' SUP top AUXILIARY MAY labe
ledURI )
olcObjectClasses: {24}( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObject'
DESC 'RFC1274: simple security object' SUP top AUXILIARY MUST userPassword )
olcObjectClasses: {25}( 1.3.6.1.4.1.1466.344 NAME 'dcObject' DESC 'RFC2247: do
main component object' SUP top AUXILIARY MUST dc )
olcObjectClasses: {26}( 1.3.6.1.1.3.1 NAME 'uidObject' DESC 'RFC2377: uid obje
ct' SUP top AUXILIARY MUST uid )
structuralObjectClass: olcSchemaConfig
entryUUID: $uuid
creatorsName: cn=config
createTimestamp: $create_timestamp
entryCSN: $entry_csn
modifiersName: cn=config
modifyTimestamp: $create_timestamp
__SCHEMA_CORE_LDIF__
close $handle
or Carp::croak(
"Failed to close '$self->{cn_schema_core_ldif_path}':$OS_ERROR");
return;
}
sub _create_olc_database_config {
my ($self) = @_;
my $write_flags = Fcntl::O_WRONLY() | Fcntl::O_CREAT() | Fcntl::O_EXCL();
my $uuid = lc $self->_uuid();
my $entry_csn = $self->_entry_csn();
my ( $uid, $gid ) =
( getpwuid $EFFECTIVE_USER_ID )[ UID_INDEX(), GID_INDEX() ];
my $create_timestamp = POSIX::strftime( '%Y%m%d%H%M%SZ', gmtime time );
my $handle = FileHandle->new( $self->{olc_database_config_path},
$write_flags, Fcntl::S_IRUSR() | Fcntl::S_IWUSR() )
or Carp::croak(
"Failed to open '$self-{olc_database_config_path}' for writing:$OS_ERROR"
);
my $user = $self->admin_user();
$handle->print(
<<"__DB_CONFIG_LDIF__") or Carp::croak("Failed to write to '$self->{olc_database_config_path}':$OS_ERROR");
dn: $self->{config_database_rdn}
objectClass: olcDatabaseConfig
olcDatabase: $self->{olc_database_for_config}
olcAddContentAcl: TRUE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: $user
olcAccess: to * by * read
olcSyncUseSubentry: FALSE
olcMonitoring: FALSE
structuralObjectClass: olcDatabaseConfig
entryUUID: $uuid
creatorsName: cn=config
createTimestamp: $create_timestamp
entryCSN: $entry_csn
modifiersName: cn=config
modifyTimestamp: $create_timestamp
__DB_CONFIG_LDIF__
close $handle
or Carp::croak(
"Failed to close '$self->{olc_database_config_path}':$OS_ERROR");
return;
}
sub _create_olc_database_db {
my ($self) = @_;
my $write_flags = Fcntl::O_WRONLY() | Fcntl::O_CREAT() | Fcntl::O_EXCL();
my $uuid = lc $self->_uuid();
my $entry_csn = $self->_entry_csn();
my $create_timestamp = POSIX::strftime( '%Y%m%d%H%M%SZ', gmtime time );
my ( $uid, $gid ) =
( getpwuid $EFFECTIVE_USER_ID )[ UID_INDEX(), GID_INDEX() ];
my $handle = FileHandle->new( $self->{olc_database_path},
$write_flags, Fcntl::S_IRUSR() | Fcntl::S_IWUSR() )
or Carp::croak(
"Failed to open '$self->{olc_database_path}' for writing:$OS_ERROR");
my $user = $self->admin_user();
my $suffix = $self->suffix();
my $password = $self->admin_password();
if ( $self->_slapd_may_not_use_mdb() ) {
$handle->print(
<<"__DB_LDIF__") or Carp::croak("Failed to write to '$self->{olc_database_path}':$OS_ERROR");
dn: $self->{database_rdn}
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: $self->{olc_database_index_and_type}
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcSyncUseSubentry: FALSE
olcMonitoring: TRUE
olcDbDirectory: $self->{db_directories}->[0]
olcDbCacheSize: 1000
olcDbCheckpoint: 1024 15
olcDbNoSync: FALSE
olcDbDirtyRead: FALSE
olcDbIDLcacheSize: 0
olcDbLinearIndex: FALSE
olcDbMode: 0600
olcDbSearchStack: 16
olcDbShmKey: 0
olcDbCacheFree: 1
olcDbDNcacheSize: 0
structuralObjectClass: olcHdbConfig
entryUUID: $uuid
creatorsName: cn=config
createTimestamp: $create_timestamp
entryCSN: $entry_csn
olcSuffix: $suffix
olcRootDN: $user
olcRootPW: ${password}
olcAccess: to * by * read
modifiersName: cn=config
modifyTimestamp: $create_timestamp
__DB_LDIF__
}
else {
$handle->print(
<<"__DB_LDIF__") or Carp::croak("Failed to write to '$self->{olc_database_path}':$OS_ERROR");
dn: $self->{database_rdn}
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: $self->{olc_database_index_and_type}
olcDbDirectory: $self->{db_directories}->[0]
olcSuffix: $suffix
olcRootDN: $user
olcRootPW: ${password}
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcMdbConfig
( run in 1.432 second using v1.01-cache-2.11-cpan-39bf76dae61 )