SEC-532: Removed FilterInvocationDecorator and tests.
This commit is contained in:
-153
@@ -1,153 +0,0 @@
|
||||
/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.security.intercept.web;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.security.ConfigAttributeDefinition;
|
||||
import org.springframework.security.SecurityConfig;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Decorator of {@link FilterInvocationDefinition} for easier configuration,
|
||||
* using {@link FilterInvocationDefinitionSourceMapping}.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Delegates all calls to decorated object set in constructor
|
||||
* {@link #FilterInvocationDefinitionDecorator(FilterInvocationDefinition)} or
|
||||
* by calling {@link #setDecorated(FilterInvocationDefinition)}
|
||||
* </p>
|
||||
*
|
||||
* @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
|
||||
* @version $Id$
|
||||
* @since 1.1
|
||||
*/
|
||||
public class FilterInvocationDefinitionDecorator implements FilterInvocationDefinition {
|
||||
|
||||
private FilterInvocationDefinition decorated;
|
||||
|
||||
private List mappings;
|
||||
|
||||
public FilterInvocationDefinitionDecorator() {
|
||||
}
|
||||
|
||||
public FilterInvocationDefinitionDecorator(FilterInvocationDefinition decorated) {
|
||||
this.setDecorated(decorated);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the decorated object
|
||||
*
|
||||
* @param decorated
|
||||
* the decorated {@link FilterInvocationDefinition}
|
||||
*/
|
||||
public void setDecorated(FilterInvocationDefinition decorated) {
|
||||
this.decorated = decorated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get decorated object
|
||||
*
|
||||
* @return the decorated {@link FilterInvocationDefinition}
|
||||
*/
|
||||
public FilterInvocationDefinition getDecorated() {
|
||||
return decorated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configures the decorated {@link FilterInvocationDefinitionMap} easier,
|
||||
* using {@link FilterInvocationDefinitionSourceMapping}.
|
||||
*
|
||||
* @param mappings
|
||||
* {@link List} of
|
||||
* {@link FilterInvocationDefinitionSourceMapping} objects.
|
||||
*/
|
||||
public void setMappings(List mappings) {
|
||||
|
||||
if (decorated == null) {
|
||||
throw new IllegalStateException("decorated object has not been set");
|
||||
}
|
||||
|
||||
this.mappings = mappings;
|
||||
Iterator it = mappings.iterator();
|
||||
while (it.hasNext()) {
|
||||
FilterInvocationDefinitionSourceMapping mapping = (FilterInvocationDefinitionSourceMapping) it.next();
|
||||
ConfigAttributeDefinition configDefinition = new ConfigAttributeDefinition();
|
||||
|
||||
Iterator configAttributesIt = mapping.getConfigAttributes().iterator();
|
||||
while (configAttributesIt.hasNext()) {
|
||||
String s = (String) configAttributesIt.next();
|
||||
configDefinition.addConfigAttribute(new SecurityConfig(s));
|
||||
}
|
||||
|
||||
decorated.addSecureUrl(mapping.getUrl(), configDefinition);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the mappings used for configuration.
|
||||
*
|
||||
* @return {@link List} of {@link FilterInvocationDefinitionSourceMapping}
|
||||
* objects.
|
||||
*/
|
||||
public List getMappings() {
|
||||
return mappings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delegate to decorated object
|
||||
*/
|
||||
public void addSecureUrl(String expression, ConfigAttributeDefinition attr) {
|
||||
getDecorated().addSecureUrl(expression, attr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delegate to decorated object
|
||||
*/
|
||||
public boolean isConvertUrlToLowercaseBeforeComparison() {
|
||||
return getDecorated().isConvertUrlToLowercaseBeforeComparison();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delegate to decorated object
|
||||
*/
|
||||
public void setConvertUrlToLowercaseBeforeComparison(boolean convertUrlToLowercaseBeforeComparison) {
|
||||
getDecorated().setConvertUrlToLowercaseBeforeComparison(convertUrlToLowercaseBeforeComparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delegate to decorated object
|
||||
*/
|
||||
public ConfigAttributeDefinition getAttributes(Object object) throws IllegalArgumentException {
|
||||
return getDecorated().getAttributes(object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delegate to decorated object
|
||||
*/
|
||||
public Iterator getConfigAttributeDefinitions() {
|
||||
return getDecorated().getConfigAttributeDefinitions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delegate to decorated object
|
||||
*/
|
||||
public boolean supports(Class clazz) {
|
||||
return getDecorated().supports(clazz);
|
||||
}
|
||||
}
|
||||
-2
@@ -61,8 +61,6 @@ public class FilterInvocationDefinitionSourceEditor extends PropertyEditorSuppor
|
||||
//~ Methods ========================================================================================================
|
||||
|
||||
public void setAsText(String s) throws IllegalArgumentException {
|
||||
//FilterInvocationDefinitionDecorator source = new FilterInvocationDefinitionDecorator();
|
||||
|
||||
if ((s == null) || "".equals(s)) {
|
||||
// Leave target object empty
|
||||
setValue(new DefaultFilterInvocationDefinitionSource(new RegexUrlPathMatcher()));
|
||||
|
||||
-82
@@ -1,82 +0,0 @@
|
||||
/* Copyright 2006 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.security.intercept.web;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.security.ConfigAttributeDefinition;
|
||||
import org.springframework.security.SecurityConfig;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
/**
|
||||
* Test for {@link FilterInvocationDefinitionDecorator}
|
||||
*
|
||||
* @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class FilterInvocationDefinitionDecoratorTest extends TestCase {
|
||||
|
||||
private FilterInvocationDefinitionDecorator decorator;
|
||||
|
||||
private FilterInvocationDefinition decorated;
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
decorated = new MockFilterInvocationDefinition();
|
||||
decorator = new FilterInvocationDefinitionDecorator(decorated);
|
||||
}
|
||||
|
||||
public void testFilterInvocationDefinitionMapDecorator() {
|
||||
decorator = new FilterInvocationDefinitionDecorator();
|
||||
decorator.setDecorated(decorated);
|
||||
assertEquals(decorated, decorator.getDecorated());
|
||||
}
|
||||
|
||||
public void testSetMappings() {
|
||||
List roles = new ArrayList();
|
||||
roles.add("ROLE_USER");
|
||||
roles.add("ROLE_ADMIN");
|
||||
|
||||
FilterInvocationDefinitionSourceMapping mapping = new FilterInvocationDefinitionSourceMapping();
|
||||
mapping.setUrl("/secure/**");
|
||||
mapping.setConfigAttributes(roles);
|
||||
|
||||
List mappings = new ArrayList();
|
||||
mappings.add(mapping);
|
||||
|
||||
decorator.setMappings(mappings);
|
||||
|
||||
ConfigAttributeDefinition configDefinition = new ConfigAttributeDefinition();
|
||||
Iterator it = roles.iterator();
|
||||
while (it.hasNext()) {
|
||||
String role = (String) it.next();
|
||||
configDefinition.addConfigAttribute(new SecurityConfig(role));
|
||||
}
|
||||
|
||||
it = decorator.getConfigAttributeDefinitions();
|
||||
int i = 0;
|
||||
while (it.hasNext()) {
|
||||
i++;
|
||||
assertEquals(configDefinition, it.next());
|
||||
}
|
||||
assertEquals(1, i);
|
||||
|
||||
assertEquals(mappings, decorator.getMappings());
|
||||
}
|
||||
}
|
||||
+1
-4
@@ -233,10 +233,7 @@ public class FilterSecurityInterceptorTests extends TestCase {
|
||||
mappings.add(mapping);
|
||||
|
||||
PathBasedFilterInvocationDefinitionMap filterInvocationDefinitionSource = new PathBasedFilterInvocationDefinitionMap();
|
||||
filterInvocationDefinitionSource.setConvertUrlToLowercaseBeforeComparison(true);
|
||||
FilterInvocationDefinitionDecorator decorator = new FilterInvocationDefinitionDecorator(
|
||||
filterInvocationDefinitionSource);
|
||||
decorator.setMappings(mappings);
|
||||
filterInvocationDefinitionSource.setMappings(mappings);
|
||||
|
||||
FilterSecurityInterceptor filter = new FilterSecurityInterceptor();
|
||||
filter.setObjectDefinitionSource(filterInvocationDefinitionSource);
|
||||
|
||||
Reference in New Issue
Block a user