Web Connection
Mixed-Case Passwords
Gravatar is a globally recognized avatar based on your email address. Mixed-Case Passwords
  Michael Hogan (Ideate Hosting)
  All
  Aug 22, 2023 @ 09:23am

I see in wwUserSecurity that lCaseSensitive is marked as "*-- OBSOLETE and no longer used"

I also see in testing that upper or mixed case passwords in the "UserSecurity" table are not working by default, but that 'THIS.Authenticate("ANY")' converts passwords entered on the login form to lower-case when authenticating.

I'm aware that I can subclass wwUserSecurity to customize validation - but I'm hoping I'm overlooking an easy way to use mixed-case passwords.

Am I missing something, or is subclassing the only way to support mixed-case passwords?

Gravatar is a globally recognized avatar based on your email address. re: Mixed-Case Passwords
  Rick Strahl
  Michael Hogan (Ideate Hosting)
  Aug 23, 2023 @ 08:36am

The flag is applied to the password hashing only.

It looks to me that the implementation is backwards. lCaseSensitive actually is NOT checking for case. Flipping this the other way will make it case sensitive.

Not sure when or why this was marked obsolete it's obviously in use. I'm hesitant to change this now as this would break code. If anything the change should be lCaseInsensitive and that defaults to .T. which is the current default behavior.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Mixed-Case Passwords
  Michael Hogan (Ideate Hosting)
  Rick Strahl
  Aug 23, 2023 @ 09:06am

Thanks for the clarification... I'll test.

Gravatar is a globally recognized avatar based on your email address. re: Mixed-Case Passwords
  Rick Strahl
  Michael Hogan (Ideate Hosting)
  Aug 23, 2023 @ 09:11am

I think the confusion was introduced when password hashing was added. The original implementation had explicit flags, the hashing routine has it just in one place. It looks like I meant to use lCaseInsensitive rather than lCaseSensitive with the logic that is now in place.

The good news is that if you reverse the flag you should be able to get case sensitive passwords as the has will be generated off the non-lower value.

Main issue is that if passwords were created and hashed one way, they're going to break if they are switched to the other way (if not already all lower case).

+++ Rick ---

© 1996-2024