Added trimming of whitespace to tokens and use of Springs StringUtils.hasText() to check for content in the string passed to setAsText.
This commit is contained in:
parent
8e1549e399
commit
c89d4a8add
|
@ -33,14 +33,12 @@ public class UserAttributeEditor extends PropertyEditorSupport {
|
|||
//~ Methods ================================================================
|
||||
|
||||
public void setAsText(String s) throws IllegalArgumentException {
|
||||
if ((s == null) || "".equals(s)) {
|
||||
setValue(null);
|
||||
} else {
|
||||
if (StringUtils.hasText(s)) {
|
||||
String[] tokens = StringUtils.commaDelimitedListToStringArray(s);
|
||||
UserAttribute userAttrib = new UserAttribute();
|
||||
|
||||
for (int i = 0; i < tokens.length; i++) {
|
||||
String currentToken = tokens[i];
|
||||
String currentToken = tokens[i].trim();
|
||||
|
||||
if (i == 0) {
|
||||
userAttrib.setPassword(currentToken);
|
||||
|
@ -61,6 +59,8 @@ public class UserAttributeEditor extends PropertyEditorSupport {
|
|||
} else {
|
||||
setValue(null);
|
||||
}
|
||||
} else {
|
||||
setValue(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,4 +123,15 @@ public class UserAttributeEditorTests extends TestCase {
|
|||
UserAttribute user = (UserAttribute) editor.getValue();
|
||||
assertTrue(user == null);
|
||||
}
|
||||
|
||||
public void testCorrectOperationWithTrailingSpaces() {
|
||||
UserAttributeEditor editor = new UserAttributeEditor();
|
||||
editor.setAsText("password ,ROLE_ONE,ROLE_TWO ");
|
||||
|
||||
UserAttribute user = (UserAttribute) editor.getValue();
|
||||
assertEquals("password", user.getPassword());
|
||||
assertEquals(2, user.getAuthorities().length);
|
||||
assertEquals("ROLE_ONE", user.getAuthorities()[0].getAuthority());
|
||||
assertEquals("ROLE_TWO", user.getAuthorities()[1].getAuthority());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue