From 9e1bf64a87bfa4a5a297a2c6e618e603798364cb Mon Sep 17 00:00:00 2001
From: Gary Williams <gary.williams@forgerock.com>
Date: Tue, 15 May 2012 19:06:34 +0000
Subject: [PATCH] Fix use of invalid certificateSyntax in security functional tests
---
opends/tests/staf-tests/shared/functions/security.xml | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 119 insertions(+), 0 deletions(-)
diff --git a/opends/tests/staf-tests/shared/functions/security.xml b/opends/tests/staf-tests/shared/functions/security.xml
index 2660aef..1331cf2 100755
--- a/opends/tests/staf-tests/shared/functions/security.xml
+++ b/opends/tests/staf-tests/shared/functions/security.xml
@@ -1921,4 +1921,123 @@
</call>
</sequence>
</function>
+
+ <function name="createStrongUserEntries" scope="local">
+ <function-prolog>
+ This creates strongAuthenticationUser entries with userCertificates
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location" type="required">
+ <function-arg-description>
+ Location of target host
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname"/>
+ </function-arg-def>
+ <function-arg-def name="certificate" type="required">
+ <function-arg-description>
+ Certificate
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="filename" type="required">
+ <function-arg-description>
+ Certificate filename
+ </function-arg-description>
+ <function-arg-property name="type" value="filename"/>
+ </function-arg-def>
+ <function-arg-def name="userdn" type="required">
+ <function-arg-description>
+ User DN
+ </function-arg-description>
+ <function-arg-property name="type" value="DN"/>
+ </function-arg-def>
+ <function-arg-def name="localLdifFile" type="required">
+ <function-arg-description>
+ Local ldif file
+ </function-arg-description>
+ <function-arg-property name="type" value="filename"/>
+ </function-arg-def>
+ <function-arg-def name="remoteLdifFile" type="required">
+ <function-arg-description>
+ Remote ldif file
+ </function-arg-description>
+ <function-arg-property name="type" value="filename"/>
+ </function-arg-def>
+ </function-map-args>
+
+ <sequence>
+
+ <!-- Get a certificate from a file in PEM format -->
+ <call function="'getFile'">
+ { 'location' : location,
+ 'filename' : filename
+ }
+ </call>
+
+ <message>
+ 'Certificate contents:\n %s' % cmdResult
+ </message>
+
+ <!-- Extract BEGIN CERTIFICATE and END CERTIFICATE -->
+ <script>
+ certList=STAXResult[1].split('\n')
+ ret_str = ""
+ for line in certList:
+ index_cert = line.find("CERTIFICATE")
+ if index_cert == -1:
+ ret_str+=line.strip()
+ </script>
+
+ <!-- Create ldif for users entries and add userCertificate -->
+ <message> '---- Create User entry : %s----' % userdn</message>
+ <script>
+ listAttr = []
+ listAttr.append('dn: %s' % userdn)
+ listAttr.append('objectclass:top')
+ listAttr.append('objectclass:organizationalperson')
+ listAttr.append('objectclass:inetorgperson')
+ listAttr.append('objectclass:person')
+ listAttr.append('objectclass:ds-certificate-user')
+ listAttr.append('objectclass:strongAuthenticationUser')
+ listAttr.append('userCertificate;binary:: %s' % ret_str)
+ listAttr.append('givenname:%s' % certificate)
+ listAttr.append('sn:%s' % certificate)
+ listAttr.append('cn:%s' % certificate)
+ </script>
+
+ <!-- Write out the ldif of users entry-->
+ <script>
+ outfile = open(localLdifFile,"w")
+ for line in listAttr:
+ outfile.write("%s\n" % line)
+ outfile.close()
+ </script>
+
+ <!-- Copy the ldif file containing userCertificate to remote host -->
+ <message>
+ 'Copy ldif (%s) file to user entry %s to %s' % (localLdifFile,userdn,remoteLdifFile)
+ </message>
+
+ <call function="'copyFile'">
+ { 'location' : STAXServiceMachine,
+ 'srcfile' : localLdifFile,
+ 'destfile' : remoteLdifFile,
+ 'remotehost' : location
+ }
+ </call>
+
+ <!-- Add the users entry into the LDAP server -->
+ <call function="'ldapModifyWithScript'">
+ {
+ 'dsAdd' : 'True' ,
+ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'dsFilename' : remoteLdifFile
+ }
+ </call>
+
+ </sequence>
+ </function>
</stax>
--
Gitblit v1.10.0