2014-12-07 7 views
1

В примечаниях к выпуску Plone 4.3.4 упоминается фиксация Add default Plone password policy. Мне бы очень хотелось сделать что-то вроде, скажем, все пароли (сброс) должны быть не менее 8 символов, содержать нижний и верхний символы, а также число и специальный символ, использующий регулярное выражение. Я могу найти это только bug report и Products.PasswordStrength на pypi.Пароли, подчиняющиеся правилам регулярного выражения для Plone 4.3.4

Инструкции по продуктам. Паспортная стойка кажется очень устаревшей (речь идет о требованиях Plone 4.1 или 4.2 - нет слова о версии 4.3, последняя версия на Plone.org - 4 года). Кто-нибудь использует его успешно?

Устанавливает Products.PasswordStrength путь? Итак, чтобы пароли сброса должны подчиняться определенным правилам регулярных выражений?

+1

Последний выпуск на pypi - https://pypi.python.org/pypi/Products.PasswordStrength/0.3.1 с 2013-11-20. Думаю, вам нужно настроить сайт разработки и попробовать его самостоятельно. Поскольку он исправляет некоторые части PAS, он может выйти из строя на Plone 4.3.x, но это должно быть возможно исправить. – Mathias

ответ

1

Regex - не тот подходящий инструмент для работы. хотя я уверен, что это было сделано. Я хотел бы предложить цикл по каждому символу и проверить его в соответствии со списком правил например (в PHP псевды):

// below rules equate to [0-9]{2,} && [A-Z]{1,} && [a-z]{2,} && [:symbol:]{2,} 
rules = [num:2, upper:1, lower:2, symbol:2] 

foreach(chars as char){ 
    if(char == [0-9]) found[num]++; 
    if(char == [A-Z]) found[upper]++; 
    if(char == [a-z]) found[lower]++; 
    if(char == [:symbol:]) found[symbol]++; 
} 


foreach(rules as key => rule){ 
    if(found[key] < rule) return false; 
} 

Для меня это наиболее гибкого и ремонтопригодно решения проверки сложности пароля.

+0

Я согласен, regex не является инструментом для этой работы. Даже простые регулярные выражения для паролей будут нечитабельны для большинства ваших пользователей, но некоторые политики (например, требующие символов из трех из четырех категорий) приведут к безумно длинным и повторяющимся регулярным выражениям. Если вы должны реализовать это самостоятельно, сделайте себе одолжение и оставите регулярные выражения из решения. –

+1

Честно говоря, это общее решение, но меня интересует, как сделать это лучше всего с Plone 4.3.4. – nachtigall

+0

Я знаю, что это решение не затрагивает вопрос, но мне нравится читаемость и ремонтопригодность этого ответа по сравнению с любой суммой regexp anyday ... –