11 changed files with 1342 additions and 91 deletions
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
#! /bin/sh |
||||
|
||||
pushd src/main/resources/org/springframework/security/config/ |
||||
|
||||
echo "Converting rnc file to xsd ..." |
||||
java -jar ~/bin/trang.jar spring-security-2.0.6.rnc spring-security-2.0.6.xsd |
||||
|
||||
echo "Applying XSL transformation to xsd ..." |
||||
xsltproc --output spring-security-2.0.6.xsd spring-security.xsl spring-security-2.0.6.xsd |
||||
|
||||
popd |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
package org.springframework.security.config; |
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition; |
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder; |
||||
import org.springframework.beans.factory.xml.BeanDefinitionParser; |
||||
import org.springframework.beans.factory.xml.ParserContext; |
||||
import org.springframework.util.StringUtils; |
||||
import org.w3c.dom.Element; |
||||
|
||||
/** |
||||
* Injects the supplied {@code HttpFirewall} bean reference into the {@code FilterChainProxy}. |
||||
* |
||||
* @author Luke Taylor |
||||
*/ |
||||
public class HttpFirewallBeanDefinitionParser implements BeanDefinitionParser { |
||||
|
||||
public BeanDefinition parse(Element element, ParserContext pc) { |
||||
String ref = element.getAttribute("ref"); |
||||
|
||||
if (!StringUtils.hasText(ref)) { |
||||
pc.getReaderContext().error("ref attribute is required", pc.extractSource(element)); |
||||
} |
||||
|
||||
BeanDefinitionBuilder injector = BeanDefinitionBuilder.rootBeanDefinition(HttpFirewallInjectionBeanPostProcessor.class); |
||||
injector.addConstructorArg(ref); |
||||
|
||||
pc.getReaderContext().registerWithGeneratedName(injector.getBeanDefinition()); |
||||
|
||||
return null; |
||||
} |
||||
} |
||||
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
package org.springframework.security.config; |
||||
|
||||
import org.springframework.beans.BeansException; |
||||
import org.springframework.beans.factory.BeanFactory; |
||||
import org.springframework.beans.factory.BeanFactoryAware; |
||||
import org.springframework.beans.factory.config.BeanPostProcessor; |
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; |
||||
import org.springframework.security.config.BeanIds; |
||||
import org.springframework.security.util.FilterChainProxy; |
||||
import org.springframework.security.firewall.HttpFirewall; |
||||
|
||||
/** |
||||
* @author Luke Taylor |
||||
*/ |
||||
public class HttpFirewallInjectionBeanPostProcessor implements BeanPostProcessor, BeanFactoryAware { |
||||
private ConfigurableListableBeanFactory beanFactory; |
||||
private String ref; |
||||
|
||||
public HttpFirewallInjectionBeanPostProcessor(String ref) { |
||||
this.ref = ref; |
||||
} |
||||
|
||||
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { |
||||
if (BeanIds.FILTER_CHAIN_PROXY.equals(beanName)) { |
||||
HttpFirewall fw = (HttpFirewall) beanFactory.getBean(ref); |
||||
((FilterChainProxy)bean).setFirewall(fw); |
||||
} |
||||
|
||||
return bean; |
||||
} |
||||
|
||||
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { |
||||
return bean; |
||||
} |
||||
|
||||
|
||||
public void setBeanFactory(BeanFactory beanFactory) throws BeansException { |
||||
this.beanFactory = (ConfigurableListableBeanFactory) beanFactory; |
||||
} |
||||
} |
||||
@ -1,5 +1,6 @@
@@ -1,5 +1,6 @@
|
||||
http\://www.springframework.org/schema/security/spring-security.xsd=org/springframework/security/config/spring-security-2.0.4.xsd |
||||
http\://www.springframework.org/schema/security/spring-security.xsd=org/springframework/security/config/spring-security-2.0.6.xsd |
||||
http\://www.springframework.org/schema/security/spring-security-2.0.xsd=org/springframework/security/config/spring-security-2.0.xsd |
||||
http\://www.springframework.org/schema/security/spring-security-2.0.1.xsd=org/springframework/security/config/spring-security-2.0.1.xsd |
||||
http\://www.springframework.org/schema/security/spring-security-2.0.2.xsd=org/springframework/security/config/spring-security-2.0.2.xsd |
||||
http\://www.springframework.org/schema/security/spring-security-2.0.4.xsd=org/springframework/security/config/spring-security-2.0.4.xsd |
||||
http\://www.springframework.org/schema/security/spring-security-2.0.6.xsd=org/springframework/security/config/spring-security-2.0.6.xsd |
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue