Skip to content

Commit 787b56e

Browse files
Username and Password regex added
1 parent 79304c8 commit 787b56e

File tree

5 files changed

+24
-4
lines changed

5 files changed

+24
-4
lines changed

src/ApiBundle/Controller/AuthController.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,8 @@ private function validateAdminUser(Request $request) {
216216
* parameters={
217217
* {"name"="client_id", "dataType"="string", "required"=true, "description"="oAuth ClientId"},
218218
* {"name"="client_secret", "dataType"="string", "required"=true, "description"="oAuth ClientSecret"},
219-
* {"name"="username", "dataType"="string", "required"=true, "description"="username"},
220-
* {"name"="password", "dataType"="string", "required"=true, "description"="password"},
219+
* {"name"="username", "dataType"="string", "required"=true, "description"="Username should be 3-16 characters long with any lowercase letter (a-z), number (0-9), an underscore, or a hyphen"},
220+
* {"name"="password", "dataType"="string", "required"=true, "description"="Password should be 8-15 characters long and must contain alphanumeric and @*# characters"},
221221
* {"name"="firstname", "dataType"="string", "required"=true, "description"="firstname"},
222222
* {"name"="lastname", "dataType"="string", "required"=true, "description"="lastname"},
223223
* {"name"="dob", "dataType"="datetime", "required"=true, "description"="date of birth mm/dd/yyyy"},
@@ -314,6 +314,10 @@ private function validateUsername(Request $request) {
314314
if (null != $user) {
315315
$this->logAndThrowError(400, 'User already exists. Username: '.$user->getUsername(), $this->get('translator')->trans('api.show_error_username_taken', array(), 'messages', $request->getLocale()), $request->getLocale());
316316
}
317+
318+
if ( preg_match($this->container->getParameter('username_regex'), $username ) == false ) {
319+
$this->logAndThrowError(400, 'Username should be 3-16 characters long with any lowercase letter (a-z), number (0-9), an underscore, or a hyphen.', $this->get('translator')->trans('api.show_error_username_policy', array(), 'messages', $request->getLocale()), $request->getLocale());
320+
}
317321
}
318322

319323
/**
@@ -326,6 +330,10 @@ private function validatePassword(Request $request) {
326330
if (null == $password) {
327331
$this->logAndThrowError(400, 'Invalid empty password', $this->get('translator')->trans('api.show_error_password', array(), 'messages', $request->getLocale()), $request->getLocale());
328332
}
333+
334+
if ( preg_match($this->container->getParameter('password_regex'), $password ) == false ) {
335+
$this->logAndThrowError(400, 'Password should be 8-15 characters long and must contain alphanumeric and @*# characters.', $this->get('translator')->trans('api.show_error_password_policy', array(), 'messages', $request->getLocale()), $request->getLocale());
336+
}
329337
}
330338

331339
/**
@@ -382,7 +390,7 @@ private function validateDob(Request $request) {
382390
* description="Change password of the user. Access token to be provided in header (Authorization = Bearer <access token>)",
383391
* parameters={
384392
* {"name"="old_password", "dataType"="string", "required"=true, "description"="Old password"},
385-
* {"name"="password", "dataType"="string", "required"=true, "description"="New password"},
393+
* {"name"="password", "dataType"="string", "required"=true, "description"="Password should be 8-15 characters long and must contain alphanumeric and @*# characters"},
386394
* {"name"="_locale", "dataType"="string", "required"=false, "description"="User locale. Will default to en"}
387395
* },
388396
* )

src/ApiBundle/Resources/config/config.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@ parameters:
33
# app_locales: en|fr|de|es|cs|nl|ru|uk|ro|pt_BR|pl|it|ja|id|ca|sl
44
app_locales: en|fr|hi
55

6+
# Password matching expression. Match all alphanumeric character and predefined wild characters.
7+
# Password must consists of at least 8 characters and not more than 15 characters.
8+
password_regex: '/^([a-zA-Z0-9@*#]{8,15})$/'
9+
10+
# username at least 3 of those characters, but no more than 16, any lowercase letter (a-z), number (0-9), an underscore, or a hyphen
11+
username_regex: '/^[a-z0-9_-]{3,16}$/'
12+
613
# Assetic Configuration
714
assetic:
815
debug: '%kernel.debug%'

src/ApiBundle/Resources/translations/messages.en.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,5 @@ api:
143143
show_error_perm_edit: Sorry, You are not permitted to edit user profile!
144144
show_error_password_reset: Sorry, You are not permitted to request for password reset!
145145
show_error_reset_req: Password reset request already received
146-
show_error_server_fault: Server Error! Please try again after some time!!
146+
show_error_username_policy: Username should be 3-16 characters long with any lowercase letter (a-z), number (0-9), an underscore, or a hyphen
147+
show_error_password_policy: Password should be 8-15 characters long and must contain alphanumeric and @*# characters

src/ApiBundle/Resources/translations/messages.fr.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,5 @@ api:
132132
show_error_password_reset: Désolé, vous n'êtes pas autorisé à demander une réinitialisation du mot de passe!
133133
show_error_reset_req: Réinitialisation du mot de passe déjà reçue
134134
show_error_server_fault: Erreur du serveur! Veuillez réessayer après un certain temps !!
135+
show_error_username_policy: Le nom d'utilisateur doit comporter entre 3 et 16 caractères avec une lettre minuscule (a-z), un chiffre (0-9), un trait de soulignement ou un tiret
136+
show_error_password_policy: Le mot de passe doit comporter entre 8 et 15 caractères et contenir des caractères alphanumériques et @*#

src/ApiBundle/Resources/translations/messages.hi.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,5 @@ api:
132132
show_error_password_reset: क्षमा करें, आप पासवर्ड रीसेट के लिए अनुरोध करने के लिए अनुमति नहीं है!
133133
show_error_reset_req: पासवर्ड रीसेट अनुरोध पहले से ही प्राप्त
134134
show_error_server_fault: सर्वर त्रुटि! कुछ समय के बाद फिर से कोशिश करें !!
135+
show_error_username_policy: यूजर का नाम किसी भी छोटा अक्षर (a-z), संख्या (0-9), एक अंडरस्कोर, या एक हाइफन के साथ 3-16 अक्षर का होना चाहिए
136+
show_error_password_policy: पासवर्ड 8-15 अक्षर का होना चाहिए और अल्फान्यूमेरिक और शामिल होना चाहिए @#* अक्षर

0 commit comments

Comments
 (0)