[ 
https://issues.apache.org/jira/browse/CASSANDRA-17457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17860886#comment-17860886
 ] 

Dinesh Joshi commented on CASSANDRA-17457:
------------------------------------------

1. Thanks for clarifying with legal. This is resolved.

2. I appeared to have overlooked the character sets that Passay and therefore 
this validator supports. In addition to English, Passay appears to support 
Cryillic, Cryillic Modern, Czech, German and Polish. However, Cassandra today 
supports any valid Unicode characters. With the validator enabled, the user 
cannot use Asian languages like Chinese (or any valid Unicode characters) which 
we support today for passwords. Here's what the user gets as an error when 
using traditional Chinese (I am not familiar with Chinese language so these are 
just some characters I found via Google Translate. Hopefully they're not 
offensive.) -

{noformat}
cassandra@cqlsh> CREATE ROLE foo WITH LOGIN = true and PASSWORD = 
'卡桑德拉-卡桑德拉山山羊棚';
InvalidRequest: Error from server: code=2200 [Invalid query] message="Password 
was not set as it violated configured password strength policy. To fix this 
error, the following has to be resolved: Password must contain 1 or more 
uppercase characters. Password must contain 1 or more lowercase characters. 
Password must contain 1 or more digit characters. Password matches 1 of 4 
character rules, but 3 are required. You may also use 'GENERATED PASSWORD' upon 
role creation or alteration."
{noformat}

I hope we can agree that this is not a great user experience. Moreover in Asian 
languages that I am familiar with there are no uppercase or lowercase 
characters which is an assumption both Passay and now Cassandra is making. This 
is what led to my suggestion to make the configuration more flexible so the 
operator can configure the character set they wish to use which could be any 
valid Unicode characters we support.

This feature restricts existing functionality for our users and that is partly 
the point of password complexity and validation. However, losing the ability to 
use any Unicode characters is definitely an issue that is worth addressing.

I propose the following to unblock this feature for now -

1. The validator should check if the password is in one of the supported 
languages. If it is, it proceeds with the validation of the rules. If it is 
not, it generates an error which says something along the lines of 'Unsupported 
language or character set'.

2. Document clearly in Cassandra's documentation, NEWS.txt and Cassandra docs 
warning the operator and user that enabling this plugin would limit the 
language choices for passwords.

In the intermediate / long term, we should find a way to support other Unicode 
character sets so we are inclusive.

I appreciate your patience with my feedback and I would like to be very clear 
that while the CEP is voted on, we as a community need to be flexible and need 
to listen to constructive feedback as and when it comes in. My objective here 
is to offer constructive feedback and not to derail your feature.

> CEP-24 - Password validation/generation
> ---------------------------------------
>
>                 Key: CASSANDRA-17457
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17457
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Feature/Authorization
>            Reporter: Berenguer Blasi
>            Assignee: Stefan Miklosovic
>            Priority: Normal
>             Fix For: 5.x
>
>
> Implement CEP-24 as per 
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=228494146



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to