diff --git a/core/src/main/java/org/acegisecurity/util/InMemoryResource.java b/core/src/main/java/org/acegisecurity/util/InMemoryResource.java new file mode 100644 index 0000000000..305e919ec2 --- /dev/null +++ b/core/src/main/java/org/acegisecurity/util/InMemoryResource.java @@ -0,0 +1,40 @@ +package net.sf.acegisecurity.util; + +import org.springframework.core.io.AbstractResource; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.IOException; + +/** + * An in memory implementation of Spring's {@link org.springframework.core.io.Resource} interface. + *

+ * Used by the "Acegifier" web application to create a + * bean factory from an XML string, rather than a file. + *

+ * + * @author Luke Taylor + * @version $Id$ + */ +public class InMemoryResource extends AbstractResource { + + ByteArrayInputStream in; + String description; + + public InMemoryResource(String source) { + this(source, null); + } + + public InMemoryResource(String source, String description) { + in = new ByteArrayInputStream(source.getBytes()); + this.description = description; + } + + public String getDescription() { + return description == null ? in.toString() : description; + } + + public InputStream getInputStream() throws IOException { + return in; + } +} diff --git a/core/src/main/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverter.java b/core/src/main/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverter.java index 26f0c19bed..f45c561796 100644 --- a/core/src/main/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverter.java +++ b/core/src/main/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverter.java @@ -39,7 +39,7 @@ public class WebXmlToAcegiSecurityConverter { /** * The name of the spring-beans file which the beans will be stored in. - * This is required when writing the new web.xml file. + * This is required when writing the new web.xml content. */ private String acegiOutputFileName = "applicationContext-acegi-security.xml"; @@ -70,12 +70,12 @@ public class WebXmlToAcegiSecurityConverter { // Create the modified web.xml file ByteArrayOutputStream output = new ByteArrayOutputStream(); + newWebXmlTransformer.setParameter("acegi-security-context-file", acegiOutputFileName); +// newWebXmlTransformer.setParameter("cas-proxy-url", "http://localhost:8433/cas/proxy"); newWebXmlTransformer.transform(xmlSource, new StreamResult(output)); newWebXml = output.toString(); output.reset(); -// acegiSecurityTransformer.setParameter("cas-proxy-url", "http://localhost:8433/cas/proxy"); - acegiSecurityTransformer.setParameter("acegi-security-context-file", acegiOutputFileName); acegiSecurityTransformer.transform(xmlSource, new StreamResult(output)); acegiBeansXml = output.toString(); } diff --git a/core/src/test/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverterTests.java b/core/src/test/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverterTests.java index f19fe97691..50a3166dae 100644 --- a/core/src/test/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverterTests.java +++ b/core/src/test/java/org/acegisecurity/util/WebXmlToAcegiSecurityConverterTests.java @@ -29,17 +29,16 @@ import java.io.IOException; public class WebXmlToAcegiSecurityConverterTests extends TestCase { public void testFileConversion() throws Exception { - WebXmlToAcegiSecurityConverter t = new WebXmlToAcegiSecurityConverter(); + WebXmlToAcegiSecurityConverter converter = new WebXmlToAcegiSecurityConverter(); Resource r = new ClassPathResource("test-web.xml"); - t.setInput(r.getInputStream()); - t.doConversion(); - + converter.setInput(r.getInputStream()); + converter.doConversion(); DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); XmlBeanDefinitionReader beanReader = new XmlBeanDefinitionReader(bf); - int nBeans = beanReader.loadBeanDefinitions(new InMemoryResource(t.getAcegiBeansXml())); + int nBeans = beanReader.loadBeanDefinitions(new InMemoryResource(converter.getAcegiBeansXml())); assertNotNull(bf.getBean("filterChainProxy")); ProviderManager pm = (ProviderManager) bf.getBean("authenticationManager"); @@ -67,24 +66,4 @@ public class WebXmlToAcegiSecurityConverterTests extends TestCase { FilterSecurityInterceptor fsi = sef.getFilterSecurityInterceptor(); } - - private static class InMemoryResource extends AbstractResource { - ByteArrayInputStream in; - - public InMemoryResource(ByteArrayInputStream in) { - this.in = in; - } - - public InMemoryResource(String source) { - in = new ByteArrayInputStream(source.getBytes()); - } - - public String getDescription() { - return in.toString(); - } - - public InputStream getInputStream() throws IOException { - return in; - } - } } diff --git a/core/src/test/resources/test-web.xml b/core/src/test/resources/test-web.xml index 0e7f2ffb12..cd1e1b5595 100644 --- a/core/src/test/resources/test-web.xml +++ b/core/src/test/resources/test-web.xml @@ -1,5 +1,13 @@ login-xml + + + contextConfigLocation + + /WEB-INF/applicationContext-business.xml + /WEB-INF/applicationContext-dao.xml + + index.jsp