security_pwd_length.xml revision d81978a0815d5b8a75633c35e3e1f8708d36f017
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "/shared/stax.dtd">
<!--
! CDDL HEADER START
!
! The contents of this file are subject to the terms of the
! Common Development and Distribution License, Version 1.0 only
! (the "License"). You may not use this file except in compliance
! with the License.
!
! You can obtain a copy of the license at
! trunk/opends/resource/legal-notices/OpenDS.LICENSE
! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
! See the License for the specific language governing permissions
! and limitations under the License.
!
! When distributing Covered Code, include this CDDL HEADER in each
! file and include the License file at
! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
! add the following below this CDDL HEADER, with the fields enclosed
! by brackets "[]" replaced with your own identifying information:
! Portions Copyright [yyyy] [name of copyright owner]
!
! CDDL HEADER END
!
! Copyright 2006-2008 Sun Microsystems, Inc.
! -->
<stax>
<defaultcall function="pwd_length"/>
<function name="pwd_length">
<sequence>
<!--- Test Suite information
#@TestSuiteName Pwd Length
#@TestSuitePurpose Checking Passwords Length
#@TestSuiteGroup Pwd Length
#@TestScript security_pwd_length.xml
-->
<!--- Define default value for basedn -->
<script>
basedn1 = 'ou=People, ou=password tests,'
basedn = '%s o=Pwd Validator Tests,dc=example,dc=com' % basedn1
val1 = 'cn=Length-Based Password Validator'
val = '%s,cn=Password Validators,cn=config' % val1
msg = 'Security: Pwd Validator: Pwd Length Min:'
msg1 = 'ds-cfg-min-password-length'
msg2 = 'Password Validator'
msg3 = 'Security: Pwd Validator: Pwd Length Max:'
msg4 = 'ds-cfg-max-password-length'
</script>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length Preamble
#@TestIssue none
#@TestPurpose Pwd Length Setup
#@TestPreamble none
#@TestStep Checking existence of ds-cfg-min-password-length
#@TestStep Admin Enable Pwd Length Validator
#@TestPostamble none
#@TestResult Success if the 2 tests are PASS
-->
<testcase name="getTestCaseName('Pwd Length Min: Preamble Setup')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Preamble Step 1. Checking existence of %s' % (msg,msg1)
</message>
<call function="'compareEntry'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
'attrToBeCompared' : 'ds-cfg-min-password-length:6',
'entryToBeCompared' : val }
</call>
<!--- Admin Enable Pwd Length Validator -->
<message>
'%s Preamble Step 2. Admin Enabling Pwd Length Validator' % msg
</message>
<call function="'modifyPwdPolicy'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
'propertyName' : 'Default Password Policy' ,
'attributeName' : 'password-validator' ,
'attributeValue' : 'Length-Based %s' % msg2 }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length : Pwd Too Short
#@TestIssue none
#@TestPurpose Pwd Length Setup
#@TestPreamble none
#@TestStep Step 1. User Changing with short Password RC 53
#@TestStep Step 2. User Search With short Password RC 49
#@TestPostamble none
#@TestResult Success if the 2 tests are PASS
-->
<!--- Test Case : User Change Password - Too Short-->
<testcase name="getTestCaseName('Pwd Length Min: Pwd Too Short 1')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Pwd Too Short 1 Step 1. User Changing Password' % msg
</message>
<call function="'ldapPasswordModifyWithScript'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'oranges' ,
'dsAuthzID' : 'dn:uid=bhall, %s' % basedn,
'dsNewPassword' : 'grape' ,
'expectedRC' : 53 }
</call>
<!--- User Search With Password -->
<message>
'%s Pwd Too Short 1 Step 2. User Searching With Password' % msg
</message>
<call function="'SearchObject'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn ,
'dsInstancePswd' : 'grape' ,
'dsBaseDN' : 'dc=example,dc=com' ,
'dsFilter' : 'objectclass=*' ,
'extraParams' : '-s base',
'expectedRC' : 49 }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length Admin Change Minimum Pwd Length
#@TestIssue none
#@TestPurpose Pwd Length Admin Change Minimum Pwd Length
#@TestPreamble none
#@TestStep Admin Change Min Pwd Length to 4
#@TestPostamble none
#@TestResult Success if the test is PASS
-->
<!--- Test Case : Admin Change Minimum Pwd Length -->
<testcase name="getTestCaseName
('Pwd Length Min: Admin Change Min Pwd Length')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Admin Changing Minimum Pwd Length' % msg
</message>
<call function="'dsconfigSet'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
'objectName' : 'password-validator' ,
'propertyType' : 'validator' ,
'propertyName' : 'Length-Based %s' % msg2 ,
'attributeName' : 'min-password-length' ,
'attributeValue' : '4' }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length User Password - Too Short 2
#@TestIssue none
#@TestPurpose Pwd Length User Password - Too Short 2
#@TestPreamble none
#@TestStep User Change Password - Too Short 2 RC 53
#@TestStep User Searching With Password Too Short 2 RC 49
#@TestPostamble none
#@TestResult Success if the 2 tests are PASS
-->
<!--- Test Case : User Change Password - Too Short 2-->
<testcase name="getTestCaseName('Pwd Length Min: Pwd Too Short 2')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Pwd Too Short 2 Step 1. User Changing Password' % msg
</message>
<call function="'modifyAnAttribute'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'oranges' ,
'DNToModify' : 'uid=bhall, %s' % basedn ,
'attributeName' : 'userpassword' ,
'newAttributeValue' : 'goo' ,
'changetype' : 'replace' ,
'expectedRC' : 53 }
</call>
<!--- User Search With Password -->
<message>
'%s Pwd Too Short 2 Step 2. User Searching With Password' % msg
</message>
<call function="'SearchObject'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'goo' ,
'dsBaseDN' : 'dc=example,dc=com' ,
'dsFilter' : 'objectclass=*' ,
'extraParams' : '-s base' ,
'expectedRC' : 49 }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length User Password 4 characters
#@TestIssue none
#@TestPurpose Pwd Length User Password 4 characters
#@TestPreamble none
#@TestStep User Change Password RC 0
#@TestStep User Searching With Password RC 0
#@TestPostamble none
#@TestResult Success if the 2 tests are PASS
-->
<!--- Test Case : User Change Password-->
<testcase name="getTestCaseName('Pwd Length Min: User Change Pwd')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s User Change Pwd Step 1. User Changing Password' % msg
</message>
<call function="'ldapPasswordModifyWithScript'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'oranges' ,
'dsAuthzID' : 'dn:uid=bhall, %s' % basedn,
'dsNewPassword' : 'grape' }
</call>
<!--- User Search With Password -->
<message>
'%s User Change Pwd Step 2. User Searching With Password' % msg
</message>
<call function="'SearchObject'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'grape' ,
'dsBaseDN' : 'dc=example,dc=com' ,
'dsFilter' : 'objectclass=*' ,
'extraParams' : '-s base' }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length Admin Reset Minimum Pwd Length
#@TestIssue none
#@TestPurpose Pwd Length Admin Reset Minimum Pwd Length
#@TestPreamble none
#@TestStep Admin Reset Minimum Pwd Length
#@TestPostamble none
#@TestResult Success if the test is PASS
-->
<testcase name="getTestCaseName('Pwd Length Min: Postamble Reset')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Postamble - Admin Resetting Minimum Pwd Length' % msg
</message>
<call function="'dsconfigSet'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
'objectName' : 'password-validator' ,
'propertyType' : 'validator' ,
'propertyName' : 'Length-Based %s' % msg2 ,
'attributeName' : 'min-password-length' ,
'attributeValue' : '6' }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length Max Preamble
#@TestIssue none
#@TestPurpose Pwd Length Max setup
#@TestPreamble none
#@TestStep Checking existence of ds-cfg-max-password-length
#@TestStep Admin Changing Maximum Pwd Length to 10
#@TestPostamble none
#@TestResult Success if the 2 tests are PASS
-->
<testcase name="getTestCaseName('Pwd Length Max: Preamble Setup')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Preamble Step 1. Checking existence of %s' % (msg3,msg4)
</message>
<call function="'compareEntry'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
'attrToBeCompared' : 'ds-cfg-max-password-length:0',
'entryToBeCompared' : '%s' % val }
</call>
<!--- Admin Change Maximum Pwd Length -->
<message>
'%s Preamble Step 2. Admin Changing Maximum Pwd Length' % msg3
</message>
<call function="'dsconfigSet'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
'objectName' : 'password-validator' ,
'propertyType' : 'validator' ,
'propertyName' : 'Length-Based %s' % msg2,
'attributeName' : 'max-password-length' ,
'attributeValue' : '10' }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length Max User Password - Too Long
#@TestIssue none
#@TestPurpose Pwd Length Max User Password - Too Long
#@TestPreamble none
#@TestStep User Changing Password over 10 RC 53
#@TestStep User Searching Password over 10 RC 49
#@TestPostamble none
#@TestResult Success if the 2 tests are PASS
-->
<testcase name="getTestCaseName('Pwd Length Max: Pwd Too Long 1')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Pwd Too Long 1 Step 1. User Changing Password' % msg3
</message>
<call function="'ldapPasswordModifyWithScript'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'grape' ,
'dsAuthzID' : 'dn:uid=bhall, %s' % basedn,
'dsNewPassword' : 'pomegranates' ,
'expectedRC' : 53 }
</call>
<!--- User Search With Password -->
<message>
'%s Pwd Too Long 1 Step 2. User Searching With Password' % msg3
</message>
<call function="'SearchObject'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'pomegranates' ,
'dsBaseDN' : 'dc=example,dc=com' ,
'dsFilter' : 'objectclass=*' ,
'extraParams' : '-s base' ,
'expectedRC' : 49 }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length Max Pwd under 10
#@TestIssue none
#@TestPurpose Pwd Length Max Pwd under 10
#@TestPreamble none
#@TestStep User Changing Password under 10 RC 0
#@TestStep User Searching Password under 10 RC 0
#@TestPostamble none
#@TestResult Success if the 2 tests are PASS
-->
<testcase name="getTestCaseName('Pwd Length Max: User Change Pwd')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s User Change Password Step 1. User Changing Password' % msg3
</message>
<call function="'ldapPasswordModifyWithScript'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'grape' ,
'dsAuthzID' : 'dn:uid=bhall, %s' % basedn,
'dsNewPassword' : 'grapefruit' }
</call>
<!--- User Search With Password -->
<message>
'%s User Change Password Step 2. User Searching With Pwd' % msg3
</message>
<call function="'SearchObject'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn,
'dsInstancePswd' : 'grapefruit' ,
'dsBaseDN' : 'dc=example,dc=com' ,
'dsFilter' : 'objectclass=*' ,
'extraParams' : '-s base' }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Pwd Length
#@TestName Pwd Length Max Postamble
#@TestIssue none
#@TestPurpose Pwd Length Max Postamble
#@TestPreamble none
#@TestStep Admin Resetting Maximum Pwd Length
#@TestStep User Changing Password over 10 RC 0
#@TestStep User Searching Password over 10 RC 0
#@TestPostamble none
#@TestResult Success if the 3 tests are PASS
-->
<testcase name="getTestCaseName('Pwd Length Max: Postamble Reset')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>
'%s Postamble Step 1. Admin Resetting Maximum Pwd Length' % msg3
</message>
<call function="'dsconfigSet'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
'objectName' : 'password-validator' ,
'propertyType' : 'validator' ,
'propertyName' : 'Length-Based %s' % msg2 ,
'attributeName' : 'max-password-length' ,
'attributeValue' : '0' }
</call>
<!--- User Change Password -->
<message>
'%s Postamble Step 2. User Changing Password' % msg3
</message>
<call function="'modifyAnAttribute'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn ,
'dsInstancePswd' : 'grapefruit' ,
'DNToModify' : 'uid=bhall,%s' % basedn ,
'attributeName' : 'userpassword' ,
'newAttributeValue' : 'pomegranates' ,
'changetype' : 'replace' }
</call>
<message>
'%s User Change Password Step 2. User Searching With Pwd' % msg3
</message>
<call function="'SearchObject'">
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
'dsInstanceDn' : 'uid=bhall,%s' % basedn ,
'dsInstancePswd' : 'pomegranates' ,
'dsBaseDN' : 'dc=example,dc=com' ,
'dsFilter' : 'objectclass=*' ,
'extraParams' : '-s base' }
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
</sequence>
</function>
</stax>