EcompPortalUtils and SearchServiceImpl changes 81/65881/1
authorKishore Reddy, Gujja (kg811t) <kg811t@research.att.com>
Tue, 11 Sep 2018 15:59:20 +0000 (11:59 -0400)
committerKishore Reddy, Gujja (kg811t) <kg811t@research.att.com>
Tue, 11 Sep 2018 16:00:16 +0000 (12:00 -0400)
Issue-ID: PORTAL-386

failed to create user with special char in login_id

Change-Id: Iab6ac96f9fa033e45cfbbc4434660139465c792e
Signed-off-by: Kishore Reddy, Gujja (kg811t) <kg811t@research.att.com>
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/SearchServiceImpl.java
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EcompPortalUtils.java

index ad6ed7b..a192ad9 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START==========================================
  * ONAP Portal
  * ===================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ===================================================================
  *
  * Unless otherwise specified, all software contained herein is licensed
@@ -39,9 +39,9 @@ package org.onap.portalapp.portal.service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
-import org.onap.portalapp.portal.service.SearchService;
-import org.onap.portalapp.portal.service.SearchServiceImpl;
 import org.onap.portalapp.portal.domain.EPUser;
 import org.onap.portalapp.portal.logging.aop.EPMetricsLog;
 import org.onap.portalapp.portal.transport.UserWithNameSurnameTitle;
@@ -74,8 +74,10 @@ public class SearchServiceImpl implements SearchService {
        public String searchUsersInPhoneBook(String searchString) {
                String orgUserId = null;
                List<String> tokens = EcompPortalUtils.parsingByRegularExpression(searchString, " ");
+               Pattern pattern = Pattern.compile(EcompPortalUtils.SEARCH_USERS_REGEX);
                for (int i = 0; i < tokens.size(); i++) { // find orgUserId if possible and remove it from tokens
-                       if (tokens.get(i).matches(".*\\d+.*")) {
+                       Matcher matcher = pattern.matcher(tokens.get(i));
+                       if (matcher.matches()) {
                                orgUserId = tokens.get(i);
                                tokens.remove(i);
                        }
index ab43149..a4b6cc2 100644 (file)
@@ -80,6 +80,9 @@ public class EcompPortalUtils {
        // It is a regular expression used for while creating a External Central Auth Role 
        public static final String EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS = "([^A-Z^a-z^0-9^\\.^%^(^)^=^:])";
        
+       // regex for alphanumeric , dashes and underscore
+               public static final String SEARCH_USERS_REGEX = "(^[a-zA-Z0-9_-]*$)";
+
        /**
         * @param orgUserId
         *            User ID to validate