Skip to content

Commit 20f8eef

Browse files
author
jrivard@gmail.com
committed
Password rule verification test cases
1 parent ba2991f commit 20f8eef

28 files changed

+1126
-735
lines changed

server/src/main/java/password/pwm/AppProperty.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ public enum AppProperty
276276
PASSWORD_STRENGTH_THRESHOLD_GOOD ( "password.strength.threshold.good" ),
277277
PASSWORD_STRENGTH_THRESHOLD_WEAK ( "password.strength.threshold.weak" ),
278278
PASSWORD_STRENGTH_THRESHOLD_VERY_WEAK ( "password.strength.threshold.veryWeak" ),
279+
PASSWORD_RULE_WORDLIST_FAIL_WHEN_CLOSED ( "password.rule.wordlist.failWhenClosed" ),
279280
PWNOTIFY_BATCH_COUNT ( "pwNotify.batch.count" ),
280281
PWNOTIFY_BATCH_DELAY_TIME_MULTIPLIER ( "pwNotify.batch.delayTimeMultiplier" ),
281282
PWNOTIFY_MAX_LDAP_SEARCH_SIZE ( "pwNotify.maxLdapSearchSize" ),

server/src/main/java/password/pwm/config/profile/PwmPasswordPolicy.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import password.pwm.util.java.JsonUtil;
3333
import password.pwm.util.java.StringUtil;
3434
import password.pwm.util.logging.PwmLogger;
35-
import password.pwm.util.password.PasswordRuleHelper;
35+
import password.pwm.util.password.PasswordRuleReaderHelper;
3636

3737
import java.io.Serializable;
3838
import java.util.ArrayList;
@@ -142,9 +142,9 @@ public ChaiPasswordPolicy getChaiPasswordPolicy( )
142142
return chaiPasswordPolicy;
143143
}
144144

145-
public PasswordRuleHelper getRuleHelper( )
145+
public PasswordRuleReaderHelper getRuleHelper( )
146146
{
147-
return new PasswordRuleHelper( this );
147+
return new PasswordRuleReaderHelper( this );
148148
}
149149

150150
public String getValue( final PwmPasswordRule rule )
@@ -328,7 +328,7 @@ public List<UserPermission> getPermissionMatches( )
328328

329329
public List<HealthRecord> health( final Locale locale )
330330
{
331-
final PasswordRuleHelper ruleHelper = this.getRuleHelper();
331+
final PasswordRuleReaderHelper ruleHelper = this.getRuleHelper();
332332
final List<HealthRecord> returnList = new ArrayList<>();
333333
final Map<PwmPasswordRule, PwmPasswordRule> rulePairs = new LinkedHashMap<>();
334334
rulePairs.put( PwmPasswordRule.MinimumLength, PwmPasswordRule.MaximumLength );

server/src/main/java/password/pwm/error/ErrorInformation.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@
2929
import java.io.Serializable;
3030
import java.time.Instant;
3131
import java.util.Arrays;
32+
import java.util.Collections;
33+
import java.util.List;
3234
import java.util.Locale;
35+
import java.util.Objects;
36+
import java.util.Set;
37+
import java.util.stream.Collectors;
3338

3439
/**
3540
* An ErrorInformation is a package of error data generated within PWM. Error information includes an error code
@@ -175,4 +180,21 @@ public ErrorInformation wrapWithNewErrorCode( final PwmError pwmError )
175180
return new ErrorInformation( pwmError, this.getDetailedErrorMsg() );
176181

177182
}
183+
184+
public static boolean listsContainSameErrors( final List<ErrorInformation> errorInformation1, final List<ErrorInformation> errorInformation2 )
185+
{
186+
Objects.requireNonNull( errorInformation1 );
187+
Objects.requireNonNull( errorInformation2 );
188+
return extractErrorSet( errorInformation1 ).equals( extractErrorSet( errorInformation2 ) );
189+
}
190+
191+
private static Set<PwmError> extractErrorSet( final List<ErrorInformation> errors )
192+
{
193+
if ( errors != null )
194+
{
195+
return errors.stream().map( ErrorInformation::getError ).collect( Collectors.toSet() );
196+
}
197+
198+
return Collections.emptySet();
199+
}
178200
}

server/src/main/java/password/pwm/health/LDAPHealthChecker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
import password.pwm.ldap.UserInfo;
5757
import password.pwm.ldap.UserInfoFactory;
5858
import password.pwm.util.PasswordData;
59-
import password.pwm.util.RandomPasswordGenerator;
59+
import password.pwm.util.password.RandomPasswordGenerator;
6060
import password.pwm.util.i18n.LocaleHelper;
6161
import password.pwm.util.java.JavaHelper;
6262
import password.pwm.util.java.StringUtil;

server/src/main/java/password/pwm/http/servlet/GuestRegistrationServlet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
import password.pwm.svc.stats.Statistic;
5757
import password.pwm.util.FormMap;
5858
import password.pwm.util.PasswordData;
59-
import password.pwm.util.RandomPasswordGenerator;
59+
import password.pwm.util.password.RandomPasswordGenerator;
6060
import password.pwm.util.form.FormUtility;
6161
import password.pwm.util.java.JavaHelper;
6262
import password.pwm.util.logging.PwmLogger;

server/src/main/java/password/pwm/http/servlet/changepw/ChangePasswordServlet.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
import password.pwm.svc.stats.AvgStatistic;
5757
import password.pwm.util.PasswordData;
5858
import password.pwm.util.password.PwmPasswordRuleValidator;
59-
import password.pwm.util.RandomPasswordGenerator;
59+
import password.pwm.util.password.RandomPasswordGenerator;
6060
import password.pwm.util.form.FormUtility;
6161
import password.pwm.util.java.JavaHelper;
6262
import password.pwm.util.java.JsonUtil;
@@ -429,7 +429,11 @@ private ProcessStatus processCheckPasswordAction( final PwmRequest pwmRequest )
429429
@ActionHandler( action = "randomPassword" )
430430
private ProcessStatus processRandomPasswordAction( final PwmRequest pwmRequest ) throws IOException, PwmUnrecoverableException, ChaiUnavailableException
431431
{
432-
final PasswordData passwordData = RandomPasswordGenerator.createRandomPassword( pwmRequest.getPwmSession(), pwmRequest.getPwmApplication() );
432+
final PasswordData passwordData = RandomPasswordGenerator.createRandomPassword(
433+
pwmRequest.getSessionLabel(),
434+
pwmRequest.getPwmSession().getUserInfo().getPasswordPolicy(),
435+
pwmRequest.getPwmApplication() );
436+
433437
final RestRandomPasswordServer.JsonOutput jsonOutput = new RestRandomPasswordServer.JsonOutput();
434438
jsonOutput.setPassword( passwordData.getStringValue() );
435439
final RestResultBean restResultBean = RestResultBean.withData( jsonOutput );

server/src/main/java/password/pwm/http/servlet/configeditor/ConfigEditorServlet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
import password.pwm.i18n.PwmLocaleBundle;
7575
import password.pwm.ldap.LdapBrowser;
7676
import password.pwm.util.PasswordData;
77-
import password.pwm.util.RandomPasswordGenerator;
77+
import password.pwm.util.password.RandomPasswordGenerator;
7878
import password.pwm.util.java.JsonUtil;
7979
import password.pwm.util.java.StringUtil;
8080
import password.pwm.util.java.TimeDuration;

server/src/main/java/password/pwm/http/servlet/configguide/ConfigGuideServlet.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ else if ( step == GuideStep.PREVIOUS )
494494
}
495495
catch ( Exception e )
496496
{
497+
LOGGER.error( pwmRequest, "error during save: " + e.getMessage(), e );
497498
final RestResultBean restResultBean = RestResultBean.fromError( new ErrorInformation(
498499
PwmError.ERROR_INTERNAL,
499500
"error during save: " + e.getMessage()

server/src/main/java/password/pwm/http/servlet/forgottenpw/ForgottenPasswordUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
import password.pwm.svc.token.TokenType;
6767
import password.pwm.svc.token.TokenUtil;
6868
import password.pwm.util.PasswordData;
69-
import password.pwm.util.RandomPasswordGenerator;
69+
import password.pwm.util.password.RandomPasswordGenerator;
7070
import password.pwm.util.java.StringUtil;
7171
import password.pwm.util.logging.PwmLogger;
7272
import password.pwm.util.macro.MacroMachine;

server/src/main/java/password/pwm/http/servlet/helpdesk/HelpdeskServlet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
import password.pwm.svc.token.TokenService;
7878
import password.pwm.svc.token.TokenUtil;
7979
import password.pwm.util.PasswordData;
80-
import password.pwm.util.RandomPasswordGenerator;
80+
import password.pwm.util.password.RandomPasswordGenerator;
8181
import password.pwm.util.java.JavaHelper;
8282
import password.pwm.util.java.JsonUtil;
8383
import password.pwm.util.java.StringUtil;

0 commit comments

Comments
 (0)