On Thu, Dec 19, 2024 at 07:25:30AM +0000, Bertrand Drouvot wrote:
> +  if (pwdlen < min_password_length)
>            ereport(ERROR,
>                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
>                     errmsg("password is too short")));
> 
> Now that the minimum password length is not "hardcoded" anymore, I wonder if 
> it
> wouldn't be better to provide more details here (pwdlen and 
> min_password_length).
> 
> Suggestion in on_top_of_0001.txt attached.

Yeah, good point.

> +       /* Define custom GUC variables. */
> +       DefineCustomIntVariable("passwordcheck.min_password_length",
> +                                                       "Minimum allowed 
> password length.",
> +                                                       NULL,
> +                                                       &min_password_length,
> +                                                       8,
> +                                                       0, INT_MAX,
> 
> Since password must contain both letters and nonletters, 0 seems too low. I
> wonder if 2 is not a better value (done in on_top_of_0001.txt attached).
> 
> Also, it seems to me that INT_MAX is too large (as mentioned in [1]), but 
> that's
> probably a nit.

I don't think we need to restrict the allowed values here.  It's true that
the lower bound will be effectively 2 due to the other checks, but that's
not the responsibility of this one to enforce.  Those other checks will
likely become configurable at some point, too.

> -                                      errmsg("password is too short")));
> +                                      errmsg("password is too short: %d (< 
> %d)", pwdlen, min_password_length)));

I think we should explicitly point to the parameter and note its current
value.

-- 
nathan


Reply via email to