Changed FilterInvocationDefinitionSourceEditor to complain if the parsed URL or the config attribute is empty or null. Plus some comment tidying.
This commit is contained in:
parent
e3696e697b
commit
f9d0ee209b
|
@ -41,7 +41,7 @@ import java.io.StringReader;
|
||||||
* presented).
|
* presented).
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* <P>
|
* <p>
|
||||||
* By default the class treats presented patterns as regular expressions. If
|
* By default the class treats presented patterns as regular expressions. If
|
||||||
* the keyword <code>PATTERN_TYPE_APACHE_ANT</code> is present (case
|
* the keyword <code>PATTERN_TYPE_APACHE_ANT</code> is present (case
|
||||||
* sensitive), patterns will be treated as Apache Ant paths rather than
|
* sensitive), patterns will be treated as Apache Ant paths rather than
|
||||||
|
@ -117,11 +117,14 @@ public class FilterInvocationDefinitionSourceEditor
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tokenize the line into its name/value tokens
|
// Tokenize the line into its name/value tokens
|
||||||
String[] nameValue = StringUtils.delimitedListToStringArray(line,
|
String[] nameValue = StringUtils.delimitedListToStringArray(line, "=");
|
||||||
"=");
|
|
||||||
String name = nameValue[0];
|
String name = nameValue[0];
|
||||||
String value = nameValue[1];
|
String value = nameValue[1];
|
||||||
|
|
||||||
|
if(!StringUtils.hasLength(name) || !StringUtils.hasLength(value)) {
|
||||||
|
throw new IllegalArgumentException("Failed to parse a valid name/value pair from " + line);
|
||||||
|
}
|
||||||
|
|
||||||
// Convert value to series of security configuration attributes
|
// Convert value to series of security configuration attributes
|
||||||
ConfigAttributeEditor configAttribEd = new ConfigAttributeEditor();
|
ConfigAttributeEditor configAttribEd = new ConfigAttributeEditor();
|
||||||
configAttribEd.setAsText(value);
|
configAttribEd.setAsText(value);
|
||||||
|
|
|
@ -31,10 +31,10 @@ import java.util.Vector;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maintains a <Code>List</code> of <code>ConfigAttributeDefinition</code>s
|
* Maintains a <code>List</code> of <code>ConfigAttributeDefinition</code>s
|
||||||
* associated with different HTTP request URL Apache Ant path-based patterns.
|
* associated with different HTTP request URL Apache Ant path-based patterns.
|
||||||
*
|
*
|
||||||
* <P>
|
* <p>
|
||||||
* Apache Ant path expressions are used to match a HTTP request URL against a
|
* Apache Ant path expressions are used to match a HTTP request URL against a
|
||||||
* <code>ConfigAttributeDefinition</code>.
|
* <code>ConfigAttributeDefinition</code>.
|
||||||
* </p>
|
* </p>
|
||||||
|
@ -48,9 +48,12 @@ import java.util.Vector;
|
||||||
* with the most general paths registered last.
|
* with the most general paths registered last.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* <P>
|
* <p>
|
||||||
* If no registered paths match the HTTP URL, <code>null</code> is returned.
|
* If no registered paths match the HTTP URL, <code>null</code> is returned.
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class PathBasedFilterInvocationDefinitionMap
|
public class PathBasedFilterInvocationDefinitionMap
|
||||||
extends AbstractFilterInvocationDefinitionSource
|
extends AbstractFilterInvocationDefinitionSource
|
||||||
|
|
|
@ -223,4 +223,14 @@ public class FilterInvocationDefinitionSourceEditorWithPathsTests
|
||||||
.getValue();
|
.getValue();
|
||||||
assertEquals(2, map.getMapSize());
|
assertEquals(2, map.getMapSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testInvalidNameValueFailsToParse() {
|
||||||
|
FilterInvocationDefinitionSourceEditor editor = new FilterInvocationDefinitionSourceEditor();
|
||||||
|
try {
|
||||||
|
// Use a "==" instead of an "="
|
||||||
|
editor.setAsText(" PATTERN_TYPE_APACHE_ANT\r\n /secure/*==ROLE_SUPERVISOR,ROLE_TELLER \r\n");
|
||||||
|
fail("Shouldn't be able to use '==' for config attribute.");
|
||||||
|
} catch(IllegalArgumentException expected) {
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue