You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2020/05/14 15:55:44 UTC
[ranger] branch master updated: RANGER-2808: Service Name must not
allow spaces in newly created services
This is an automated email from the ASF dual-hosted git repository.
pradeep pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new f4ac66d RANGER-2808: Service Name must not allow spaces in newly created services
f4ac66d is described below
commit f4ac66d5f2f0014a8b1f6ab043cc1372a55ab6fd
Author: Kishor Gollapalliwar <ki...@gmail.com>
AuthorDate: Thu May 14 20:41:09 2020 +0530
RANGER-2808: Service Name must not allow spaces in newly created services
Signed-off-by: pradeep <pr...@apache.org>
---
.../ranger/plugin/errors/ValidationErrorCode.java | 4 +-
.../model/validation/RangerServiceValidator.java | 43 ++---
.../validation/TestRangerServiceValidator.java | 195 +++++++++++++++++----
.../webapp/scripts/modules/globalize/message/en.js | 1 +
4 files changed, 181 insertions(+), 62 deletions(-)
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/errors/ValidationErrorCode.java b/agents-common/src/main/java/org/apache/ranger/plugin/errors/ValidationErrorCode.java
index 1498505..971fd50 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/errors/ValidationErrorCode.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/errors/ValidationErrorCode.java
@@ -35,8 +35,8 @@ public enum ValidationErrorCode {
SERVICE_VALIDATION_ERR_INVALID_SERVICE_NAME(1006, "Missing service name"),
SERVICE_VALIDATION_ERR_SERVICE_NAME_CONFICT(1007, "Duplicate service name: name=[{0}]"),
SERVICE_VALIDATION_ERR_SERVICE_DISPLAY_NAME_CONFICT(3051,"Display name [{0}] is already used by service [{1}]"),
- SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME(3031, "Name should not start with space, it should be less than 256 characters and special characters are not allowed(except _ - and space). : name=[{0}]"),
- SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_DISPLAY_NAME(3050, "Invalid display name [{0}]. It should be not be longer than 256 characters, should not start with space, and should not include special characters (except underscore, hyphen and space)"),
+ SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME(3031, "Invalid service name=[{0}]. It should not be longer than 256 characters and special characters are not allowed (except underscore and hyphen)"),
+ SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_DISPLAY_NAME(3050, "Invalid service display name [{0}]. It should not be longer than 256 characters, should not start with space, and should not include special characters (except underscore, hyphen and space)"),
SERVICE_VALIDATION_ERR_ID_NAME_CONFLICT(1008, "Duplicate service name: name=[{0}], id=[{1}]"),
SERVICE_VALIDATION_ERR_MISSING_SERVICE_DEF(1009, "Missing service def"),
SERVICE_VALIDATION_ERR_INVALID_SERVICE_DEF(1010, "Service def not found: service-def-name=[{0}]"),
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceValidator.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceValidator.java
index aa8cf7e..6c4d6c1 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceValidator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceValidator.java
@@ -36,9 +36,11 @@ import com.google.common.collect.Sets;
public class RangerServiceValidator extends RangerValidator {
private static final Log LOG = LogFactory.getLog(RangerServiceValidator.class);
- static final public String VALIDATION_SERVICE_NAME = "^[a-zA-Z0-9_-][a-zA-Z0-9\\s_-]{0,254}";
- static Pattern serviceNameCompiledRegEx;
+ private static final Pattern SERVICE_NAME_VALIDATION_REGEX = Pattern.compile("^[a-zA-Z0-9_-][a-zA-Z0-9_-]{0,254}", Pattern.CASE_INSENSITIVE);
+ private static final Pattern LEGACY_SERVICE_NAME_VALIDATION_REGEX = Pattern.compile("^[a-zA-Z0-9_-][a-zA-Z0-9\\s_-]{0,254}", Pattern.CASE_INSENSITIVE);
+ private static final Pattern SERVICE_DISPLAY_NAME_VALIDATION_REGEX = Pattern.compile("^[a-zA-Z0-9_-][a-zA-Z0-9\\s_-]{0,254}", Pattern.CASE_INSENSITIVE);
+
public RangerServiceValidator(ServiceStore store) {
super(store);
}
@@ -104,7 +106,6 @@ public class RangerServiceValidator extends RangerValidator {
if (!(action == Action.CREATE || action == Action.UPDATE)) {
throw new IllegalArgumentException("isValid(RangerService, ...) is only supported for CREATE/UPDATE");
}
-
boolean valid = true;
if (service == null) {
ValidationErrorCode error = ValidationErrorCode.SERVICE_VALIDATION_ERR_NULL_SERVICE_OBJECT;
@@ -151,7 +152,16 @@ public class RangerServiceValidator extends RangerValidator {
.build());
valid = false;
} else {
- if(!validateString(VALIDATION_SERVICE_NAME, name)){
+ Pattern serviceNameRegex = SERVICE_NAME_VALIDATION_REGEX;
+ if (action == Action.UPDATE) {
+ RangerService rangerService = getService(service.getId());
+ if (rangerService != null && StringUtils.isNotBlank(rangerService.getName()) && rangerService.getName().contains(" ")) {
+ //RANGER-2808 Support for space in services created with space in earlier version
+ serviceNameRegex = LEGACY_SERVICE_NAME_VALIDATION_REGEX;
+ }
+ }
+
+ if(!isValidString(serviceNameRegex, name)){
ValidationErrorCode error = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME;
failures.add(new ValidationFailureDetailsBuilder()
.field("name")
@@ -185,7 +195,7 @@ public class RangerServiceValidator extends RangerValidator {
}
// Display name
String displayName = service.getDisplayName();
- if(!validateString(VALIDATION_SERVICE_NAME, displayName)){
+ if(!isValidString(SERVICE_DISPLAY_NAME_VALIDATION_REGEX, displayName)){
ValidationErrorCode error = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_DISPLAY_NAME;
failures.add(new ValidationFailureDetailsBuilder()
.field("displayName")
@@ -216,7 +226,6 @@ public class RangerServiceValidator extends RangerValidator {
valid = false;
}
}
-
String type = service.getType();
boolean typeSpecified = StringUtils.isNotBlank(type);
if (!typeSpecified) {
@@ -258,7 +267,6 @@ public class RangerServiceValidator extends RangerValidator {
valid = false;
}
}
-
String tagServiceName = service.getTagService();
if (StringUtils.isNotBlank(tagServiceName) && StringUtils.equals(type, EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_TAG_NAME)) {
@@ -271,7 +279,6 @@ public class RangerServiceValidator extends RangerValidator {
}
boolean needToEnsureServiceType = false;
-
if (action == Action.UPDATE) {
RangerService otherService = getService(name);
String otherTagServiceName = otherService == null ? null : otherService.getTagService();
@@ -286,7 +293,6 @@ public class RangerServiceValidator extends RangerValidator {
needToEnsureServiceType = true;
}
}
-
if (needToEnsureServiceType) {
RangerService maybeTagService = getService(tagServiceName);
if (maybeTagService == null || !StringUtils.equals(maybeTagService.getType(), EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_TAG_NAME)) {
@@ -306,22 +312,7 @@ public class RangerServiceValidator extends RangerValidator {
return valid;
}
- public boolean regExPatternMatch(String expression, String inputStr) {
- Pattern pattern = serviceNameCompiledRegEx;
- if (pattern == null) {
- pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
- serviceNameCompiledRegEx = pattern;
- }
-
- return pattern != null && pattern.matcher(inputStr).matches();
- }
-
- public boolean validateString(String regExStr, String str) {
- try {
- return regExPatternMatch(regExStr, str);
- } catch (Throwable t) {
- LOG.error("Error validating string. str=" + str + " due to reason " + t.getMessage() + ". Stack Trace : " + t.getStackTrace());
- return false;
- }
+ public boolean isValidString(final Pattern pattern, final String name) {
+ return pattern != null && StringUtils.isNotBlank(name) && pattern.matcher(name).matches();
}
}
diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/model/validation/TestRangerServiceValidator.java b/agents-common/src/test/java/org/apache/ranger/plugin/model/validation/TestRangerServiceValidator.java
index 02216b6..bb9968b 100644
--- a/agents-common/src/test/java/org/apache/ranger/plugin/model/validation/TestRangerServiceValidator.java
+++ b/agents-common/src/test/java/org/apache/ranger/plugin/model/validation/TestRangerServiceValidator.java
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.ranger.plugin.errors.ValidationErrorCode;
import org.apache.ranger.plugin.model.RangerService;
import org.apache.ranger.plugin.model.RangerServiceDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerServiceConfigDef;
@@ -37,11 +38,10 @@ import org.junit.Before;
import org.junit.Test;
public class TestRangerServiceValidator {
-
+
final Action[] cud = new Action[] { Action.CREATE, Action.UPDATE, Action.DELETE };
final Action[] cu = new Action[] { Action.CREATE, Action.UPDATE };
final Action[] ud = new Action[] { Action.UPDATE, Action.DELETE };
- String serviceNameValidationErrorMessage = "Name should not start with space, it should be less than 256 characters and special characters are not allowed(except _ - and space). ";
@Before
public void before() {
@@ -75,9 +75,12 @@ public class TestRangerServiceValidator {
@Test
public void testIsValidServiceNameCreationWithOutSpecialCharacters() throws Exception{
+ String serviceName = "c1_yarn";
+ String serviceDisplayName = serviceName;
+
RangerService rangerService = new RangerService();
- rangerService.setName("c1_yarn");
- rangerService.setDisplayName("c1_yarn");
+ rangerService.setName(serviceName);
+ rangerService.setDisplayName(serviceDisplayName);
rangerService.setType("yarn");
rangerService.setTagService("");
@@ -103,15 +106,18 @@ public class TestRangerServiceValidator {
boolean valid = _validator.isValid(rangerService, Action.CREATE, _failures);
Assert.assertEquals(0, _failures.size());
Assert.assertTrue(valid);
-
+
}
-
+
@Test
public void testIsValidServiceNameUpdationWithOutSpecialCharacters() throws Exception{
+ String serviceName = "c1_yarn";
+ String serviceDisplayName = serviceName;
+
RangerService rangerService = new RangerService();
rangerService.setId(1L);
- rangerService.setName("c1_yarn");
- rangerService.setDisplayName("c1_yarn");
+ rangerService.setName(serviceName);
+ rangerService.setDisplayName(serviceDisplayName);
rangerService.setType("yarn");
rangerService.setTagService("");
@@ -138,17 +144,23 @@ public class TestRangerServiceValidator {
boolean valid = _validator.isValid(rangerService, Action.UPDATE, _failures);
Assert.assertEquals(0, _failures.size());
Assert.assertTrue(valid);
-
+
}
-
+
@Test
public void testIsValidServiceNameUpdationWithSpecialCharacters() throws Exception{
+ String serviceName = "<alert>c1_yarn</alert>";
+
+ ValidationErrorCode vErrCod = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME;
+ String errorMessage = vErrCod.getMessage(serviceName);
+ int errorCode = vErrCod.getErrorCode();
+
RangerService rangerService = new RangerService();
rangerService.setId(1L);
- rangerService.setName("<alert>c1_yarn</alert>");
+ rangerService.setName(serviceName);
rangerService.setType("yarn");
rangerService.setTagService("");
-
+
RangerServiceConfigDef configDef = new RangerServiceConfigDef();
configDef.setMandatory(true);
@@ -173,18 +185,24 @@ public class TestRangerServiceValidator {
ValidationFailureDetails failureMessage = _failures.get(0);
Assert.assertFalse(valid);
Assert.assertEquals("name",failureMessage.getFieldName());
- Assert.assertEquals(serviceNameValidationErrorMessage + ": name=[<alert>c1_yarn</alert>]",failureMessage._reason);
- Assert.assertEquals(3031, failureMessage._errorCode);
-
+ Assert.assertEquals(errorMessage, failureMessage._reason);
+ Assert.assertEquals(errorCode, failureMessage._errorCode);
+
}
-
+
@Test
public void testIsValidServiceNameCreationWithSpecialCharacters() throws Exception{
+ String serviceName = "<script>c1_yarn</script>";
+
+ ValidationErrorCode vErrCod = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME;
+ String errorMessage = vErrCod.getMessage(serviceName);
+ int errorCode = vErrCod.getErrorCode();
+
RangerService rangerService = new RangerService();
- rangerService.setName("<script>c1_yarn</script>");
+ rangerService.setName(serviceName);
rangerService.setType("yarn");
rangerService.setTagService("");
-
+
RangerServiceConfigDef configDef = new RangerServiceConfigDef();
configDef.setMandatory(true);
@@ -208,18 +226,121 @@ public class TestRangerServiceValidator {
ValidationFailureDetails failureMessage = _failures.get(0);
Assert.assertFalse(valid);
Assert.assertEquals("name",failureMessage.getFieldName());
- Assert.assertEquals(serviceNameValidationErrorMessage + ": name=[<script>c1_yarn</script>]",failureMessage._reason);
- Assert.assertEquals(3031, failureMessage._errorCode);
-
+ Assert.assertEquals(errorMessage, failureMessage._reason);
+ Assert.assertEquals(errorCode, failureMessage._errorCode);
}
-
+
+ @Test
+ public void testIsValidServiceNameCreationWithSpaceCharacter() throws Exception{
+ String serviceName = "Cluster 1_c1_yarn";
+ String serviceDisplayName = serviceName;
+
+ ValidationErrorCode vErrCod = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME;
+ String errorMessage = vErrCod.getMessage(serviceName);
+ int errorCode = vErrCod.getErrorCode();
+
+ RangerService rangerService = new RangerService();
+ rangerService.setName(serviceName);
+ rangerService.setDisplayName(serviceDisplayName);
+ rangerService.setType("yarn");
+ rangerService.setTagService("");
+
+ RangerServiceConfigDef configDef = new RangerServiceConfigDef();
+ configDef.setMandatory(true);
+
+ List<RangerServiceConfigDef> listRangerServiceConfigDef = new ArrayList<RangerServiceDef.RangerServiceConfigDef>();
+ listRangerServiceConfigDef.add(configDef);
+
+ configDef.setName("myconfig1");
+
+ Map<String,String> testMap = new HashMap<String, String>();
+ testMap.put("myconfig1", "myconfig1");
+
+ rangerService.setConfigs(testMap);
+
+ RangerServiceDef rangerServiceDef = new RangerServiceDef();
+ rangerServiceDef.setConfigs(listRangerServiceConfigDef);
+
+ when(_store.getServiceDefByName("yarn")).thenReturn(rangerServiceDef);
+ boolean valid = _validator.isValid(rangerService, _action, _failures);
+ ValidationFailureDetails failureMessage = _failures.get(0);
+ Assert.assertFalse(valid);
+ Assert.assertEquals("name",failureMessage.getFieldName());
+ Assert.assertEquals(errorMessage, failureMessage._reason);
+ Assert.assertEquals(errorCode, failureMessage._errorCode);
+ }
+
+ @Test
+ public void testIsValidServiceNameUpdationWithSpaceCharacter() throws Exception{
+ String serviceName = "Cluster 1_c1_yarn";
+ String serviceDisplayName = serviceName;
+
+ ValidationErrorCode vErrCod = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME;
+ String errorMessage = vErrCod.getMessage(serviceName);
+ int errorCode = vErrCod.getErrorCode();
+
+ RangerService rangerService = new RangerService();
+ rangerService.setId(1L);
+ rangerService.setName(serviceName);
+ rangerService.setDisplayName(serviceDisplayName);
+ rangerService.setType("yarn");
+ rangerService.setTagService("");
+
+ RangerServiceConfigDef configDef = new RangerServiceConfigDef();
+ configDef.setMandatory(true);
+
+ List<RangerServiceConfigDef> listRangerServiceConfigDef = new ArrayList<RangerServiceDef.RangerServiceConfigDef>();
+ listRangerServiceConfigDef.add(configDef);
+
+ configDef.setName("myconfig1");
+
+ Map<String,String> testMap = new HashMap<String, String>();
+ testMap.put("myconfig1", "myconfig1");
+
+ rangerService.setConfigs(testMap);
+
+ RangerServiceDef rangerServiceDef = new RangerServiceDef();
+ rangerServiceDef.setConfigs(listRangerServiceConfigDef);
+
+ String serviceNameWithoutSpace = "Cluster_1_c1_yarn";
+ String serviceDisplayNameWithoutSpace = serviceNameWithoutSpace;
+ RangerService rangerServiceWithoutSpace = new RangerService();
+ rangerServiceWithoutSpace.setId(1L);
+ rangerServiceWithoutSpace.setName(serviceNameWithoutSpace);
+ rangerServiceWithoutSpace.setDisplayName(serviceDisplayNameWithoutSpace);
+ rangerServiceWithoutSpace.setType("yarn");
+ rangerServiceWithoutSpace.setTagService("");
+
+ //Case: previous service name does not have space, updating with name containing space
+ when(_store.getService(1L)).thenReturn(rangerServiceWithoutSpace);
+ when(_store.getServiceDefByName("yarn")).thenReturn(rangerServiceDef);
+ boolean valid = _validator.isValid(rangerService, Action.UPDATE, _failures);
+ ValidationFailureDetails failureMessage = _failures.get(0);
+ Assert.assertFalse(valid);
+ Assert.assertEquals("name",failureMessage.getFieldName());
+ Assert.assertEquals(errorMessage, failureMessage._reason);
+ Assert.assertEquals(errorCode, failureMessage._errorCode);
+
+ //Case: previous service name does have space, updating with name containing space
+ when(_store.getService(1L)).thenReturn(rangerService);
+ when(_store.getServiceDefByName("yarn")).thenReturn(rangerServiceDef);
+ boolean validWithSpace = _validator.isValid(rangerService, Action.UPDATE, _failures);
+ Assert.assertTrue(validWithSpace);
+ }
+
@Test
public void testIsValidServiceNameCreationWithGreater255Characters() throws Exception{
+ String serviceName = "c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1";
+
+ ValidationErrorCode vErrCod = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME;
+ String errorMessage = vErrCod.getMessage(serviceName);
+ int errorCode = vErrCod.getErrorCode();
+
RangerService rangerService = new RangerService();
- rangerService.setName("c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1");
+ rangerService.setName(serviceName);
rangerService.setType("yarn");
rangerService.setTagService("");
-
+
RangerServiceConfigDef configDef = new RangerServiceConfigDef();
configDef.setMandatory(true);
@@ -243,19 +364,25 @@ public class TestRangerServiceValidator {
ValidationFailureDetails failureMessage = _failures.get(0);
Assert.assertFalse(valid);
Assert.assertEquals("name",failureMessage.getFieldName());
- Assert.assertEquals(serviceNameValidationErrorMessage + ": name=[c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1]",failureMessage._reason);
- Assert.assertEquals(3031, failureMessage._errorCode);
-
+ Assert.assertEquals(errorMessage, failureMessage._reason);
+ Assert.assertEquals(errorCode, failureMessage._errorCode);
+
}
-
+
@Test
public void testIsValidServiceNameUpdationWithGreater255Characters() throws Exception{
+ String serviceName = "c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1";
+
+ ValidationErrorCode vErrCod = ValidationErrorCode.SERVICE_VALIDATION_ERR_SPECIAL_CHARACTERS_SERVICE_NAME;
+ String errorMessage = vErrCod.getMessage(serviceName);
+ int errorCode = vErrCod.getErrorCode();
+
RangerService rangerService = new RangerService();
rangerService.setId(1L);
- rangerService.setName("c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1");
+ rangerService.setName(serviceName);
rangerService.setType("yarn");
rangerService.setTagService("");
-
+
RangerServiceConfigDef configDef = new RangerServiceConfigDef();
configDef.setMandatory(true);
@@ -280,11 +407,11 @@ public class TestRangerServiceValidator {
ValidationFailureDetails failureMessage = _failures.get(0);
Assert.assertFalse(valid);
Assert.assertEquals("name",failureMessage.getFieldName());
- Assert.assertEquals(serviceNameValidationErrorMessage +": name=[c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1_yarn_c1]",failureMessage._reason);
- Assert.assertEquals(3031, failureMessage._errorCode);
-
+ Assert.assertEquals(errorMessage, failureMessage._reason);
+ Assert.assertEquals(errorCode, failureMessage._errorCode);
+
}
-
+
@Test
public void testIsValid_failures() throws Exception {
RangerService service = mock(RangerService.class);
diff --git a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
index f7bd58c..c046821 100644
--- a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
+++ b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
@@ -527,6 +527,7 @@ define(function(require) {
nameValidationMsg :'Name should not start with space, it should be less than 256 characters and special characters are not allowed(except _ - and space).',
roleNameValidationMsg :'1. Role name should be start with alphabet / numeric / underscore / non-us characters.<br> 2. Allowed special character ,._\-+/@= and space. <br>3. Name length should be greater than one.',
policyNameValidationMsg :'Please avoid these characters (&, <, >, \', ", `) for policy name.',
+ serviceNameValidationMsg :'Service name should be less than 256 characters and special characters are not allowed (except _ and -)',
},
serverMsg : {