Проверка пароля с использованием регулярных выражений в Grails - PullRequest
0 голосов
/ 16 марта 2012

Я использую следующее регулярное выражение

'^(?!.*(.)\\{4})(?=.*[0-9 \\Q~!@#$%^&*()-_=+[]{}|;:,.<>/?]{2,})(?=.*[a-zA-Z]{2,}){8,50}$'

для условий:

  • Пароль должен содержать не менее 8 символов и не более 50.
  • Пароль должен содержать не менее 2 букв.
  • Пароль не может содержать более 4 экземпляров одного и того же символа.
  • Пароль должен содержать не менее 5 уникальных символов.
  • Пароль должен содержать не менее 2 уникальных чисел (символы считаются числами).

Когда я пытаюсь запустить приложение, используя Grails, возникает исключение класса закрытых символов. Я также сомневаюсь в том, что 5 уникальных символов должны быть проверены. Помоги мне выйти из этого вопроса.

Заранее спасибо.

1 Ответ

1 голос
/ 16 марта 2012

Не уверен, имеет ли Grails какую-либо специальную обработку этого, но в java, в которой делегаты preumbaly grails вам нужно экранировать специальные символы, незамкнутый класс символов вызывается [] между + и {} почти наверняка.

Вам бы лучше было использовать некоторые классы символов \ p {punct}, чтобы избежать этих проблем.

Сказав, что это будет проще и понятнее в коде.Определите различные наборы символов и проверяйте членство, когда вы повторяете пароль.Это дает дополнительное преимущество, заключающееся в том, что вы можете явно избежать неприятностей с SQL-инъекцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...