summaryrefslogtreecommitdiff
path: root/bkucommon/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'bkucommon/src/test')
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java7
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/AbstractBindingProcessorTest.java77
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/BindingProcessorManagerTest.java27
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/DataUrlConnectionTest.java39
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/EmptyMultipartSLRequestTest.java98
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/ExpiryRemoverTest.java70
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/FormDataTest.java90
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/HttpBindingProcessorTest.java81
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/MultiTestDataUrlConnection.java5
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/MultipartSLRequestTest.java78
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/NullOperationTest.java54
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/SSLDataUrlConnectionTest.java18
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/TestDataUrlConnection.java212
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/binding/XWWWFormUrlInputIteratorTest.java4
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/conf/CertValidatorTest.java35
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/conf/DummyConfiguration.java32
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/slcommands/SLCommandFactoryTest.java17
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/CreateXMLSignatureComandImplTest.java61
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/InfoboxReadComandImplTest.java47
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/SVPersonendatenInfoboxImplTest.java66
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/xsect/SignatureTest.java110
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummySTAL.java13
-rw-r--r--bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummyStalFactory.java (renamed from bkucommon/src/test/java/at/gv/egiz/bku/binding/DummyStalFactory.java)2
-rw-r--r--bkucommon/src/test/resources/at/gv/egiz/bku/binding/NOPMultipartDataUrl.txt2
-rw-r--r--bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/impl/TransformsInfo_2.xml2
-rw-r--r--bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/testApplicationContext.xml156
-rw-r--r--bkucommon/src/test/resources/commons-logging.properties1
27 files changed, 693 insertions, 711 deletions
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java
index bce3cdd9..88832753 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java
@@ -7,7 +7,6 @@ import org.junit.Test;
import at.gv.egiz.bku.slcommands.InfoboxReadCommand;
import at.gv.egiz.bku.slcommands.SLCommandContext;
import at.gv.egiz.bku.slcommands.SLResult;
-import at.gv.egiz.bku.slcommands.impl.InfoboxReadCommandImpl;
import at.gv.egiz.bku.slexceptions.SLCommandException;
import at.gv.egiz.bku.slexceptions.SLException;
import static org.junit.Assert.*;
@@ -20,7 +19,6 @@ public class ConfigTest {
static class MyInfoBox implements InfoboxReadCommand {
private String domainId;
private String boxId;
- private String name;
public MyInfoBox(String identifier, String domainId) {
this.boxId = identifier;
@@ -38,12 +36,11 @@ public class ConfigTest {
}
@Override
- public SLResult execute() {
+ public SLResult execute(SLCommandContext commandContext) {
return null;
}
public void setName(String name) {
- this.name = name;
}
@Override
@@ -52,7 +49,7 @@ public class ConfigTest {
}
@Override
- public void init(SLCommandContext ctx, Object unmarshalledRequest)
+ public void init(Object unmarshalledRequest)
throws SLCommandException {
}
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/AbstractBindingProcessorTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/AbstractBindingProcessorTest.java
new file mode 100644
index 00000000..409d2611
--- /dev/null
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/AbstractBindingProcessorTest.java
@@ -0,0 +1,77 @@
+/*
+* Copyright 2009 Federal Chancellery Austria and
+* Graz University of Technology
+*
+* 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 at.gv.egiz.bku.binding;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import iaik.security.ecc.provider.ECCProvider;
+import iaik.security.provider.IAIK;
+import iaik.xml.crypto.XSecProvider;
+
+import java.security.Security;
+
+import org.junit.BeforeClass;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import at.gv.egiz.bku.slcommands.SLCommandInvoker;
+import at.gv.egiz.stal.STAL;
+
+public abstract class AbstractBindingProcessorTest {
+
+ protected static AbstractApplicationContext ctx;
+
+ @BeforeClass
+ public static void setUpClass() {
+ Security.insertProviderAt(new IAIK(), 1);
+ Security.insertProviderAt(new ECCProvider(false), 2);
+ XSecProvider.addAsProvider(false);
+
+ ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
+ "at/gv/egiz/bku/slcommands/testApplicationContext.xml");
+ assertNotNull(ctx);
+ HttpBindingProcessorTest.ctx = ctx;
+ }
+
+ protected static BindingProcessorManager getBindingProcessorManager() {
+ Object bean = ctx.getBean("bindingProcessorManager");
+ assertTrue(bean instanceof BindingProcessorManagerImpl);
+ BindingProcessorManagerImpl manager = (BindingProcessorManagerImpl) bean;
+
+ assertNotNull(manager.getCommandInvoker());
+ assertNotNull(manager.getStalFactory());
+ return manager;
+ }
+
+ public static BindingProcessor createBindingProcessor(String protocol) {
+
+ BindingProcessorManagerImpl manager = (BindingProcessorManagerImpl) getBindingProcessorManager();
+
+ assertNotNull(manager.getCommandInvoker());
+ assertNotNull(manager.getStalFactory());
+
+ BindingProcessor bindingProcessor = manager.createBindingProcessor(protocol);
+ SLCommandInvoker commandInvoker = manager.getCommandInvoker().newInstance();
+ STAL stal = manager.getStalFactory().createSTAL();
+ bindingProcessor.init("test", stal, commandInvoker);
+
+ return bindingProcessor;
+
+ }
+
+}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/BindingProcessorManagerTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/BindingProcessorManagerTest.java
index 22a7aa3b..d4c91560 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/BindingProcessorManagerTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/BindingProcessorManagerTest.java
@@ -16,36 +16,19 @@
*/
package at.gv.egiz.bku.binding;
-import at.gv.egiz.bku.conf.Configuration;
-import at.gv.egiz.bku.conf.DummyConfiguration;
import static org.junit.Assert.*;
import java.net.MalformedURLException;
-import org.junit.Before;
import org.junit.Test;
-public class BindingProcessorManagerTest {
+public class BindingProcessorManagerTest extends AbstractBindingProcessorTest {
- @Before
- public void setUp() {
- IdFactory.getInstance().setNumberOfBits(24*10);
- }
-
-
- @Test(expected = MalformedURLException.class)
+ @Test(expected = IllegalArgumentException.class)
public void basicCreationTest() throws MalformedURLException {
- //TODO for the moment empty config sufficient (currently only maxDataURLHops configured)
- BindingProcessorManager manager = new BindingProcessorManagerImpl(new DummyStalFactory(), new SLCommandInvokerImpl(), new DummyConfiguration());
- BindingProcessor bp = manager.createBindingProcessor("http://www.at/", null);
- assertNotNull(bp.getId().toString());
- assertEquals(40, bp.getId().toString().length());
- String hansi = "Hansi";
- bp = manager.createBindingProcessor("http://www.iaik.at",hansi);
- assertEquals(hansi, bp.getId().toString());
- bp = manager.createBindingProcessor("HtTp://www.iaik.at", null);
- assertNotNull(bp);
- manager.createBindingProcessor("seppl", null);
+ assertNotNull(createBindingProcessor("http"));
+ assertNotNull(createBindingProcessor("HtTp"));
+ createBindingProcessor("seppl");
}
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/DataUrlConnectionTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/DataUrlConnectionTest.java
index 6e48e6fa..215af8da 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/DataUrlConnectionTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/DataUrlConnectionTest.java
@@ -20,8 +20,8 @@
*/
package at.gv.egiz.bku.binding;
-import at.gv.egiz.bku.conf.Configuration;
-import at.gv.egiz.bku.conf.DummyConfiguration;
+import static org.junit.Assert.*;
+
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -35,13 +35,15 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import at.gv.egiz.bku.slexceptions.SLException;
+
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
@@ -51,20 +53,20 @@ import com.sun.net.httpserver.HttpServer;
*
* @author clemens
*/
-public class DataUrlConnectionTest {
+public class DataUrlConnectionTest extends AbstractBindingProcessorTest {
public static final String REQUEST_RESOURCE = "at/gv/egiz/bku/binding/NOPMultipartDataUrl.txt";
- private static final Log log = LogFactory.getLog(DataUrlConnectionTest.class);
+ private final Logger log = LoggerFactory.getLogger(DataUrlConnectionTest.class);
static HttpServer server;
- static BindingProcessor bindingProcessor;
- static BindingProcessorManager manager;
+ static HTTPBindingProcessorImpl bindingProcessor;
protected InputStream requestStream;
@BeforeClass
public static void setUpHTTPServer() throws IOException {
+ Logger log = LoggerFactory.getLogger(DataUrlConnectionTest.class);
log.debug("setting up HTTPServer");
InetSocketAddress addr = new InetSocketAddress("localhost", 8081);
server = HttpServer.create(addr, 0);
@@ -72,14 +74,12 @@ public class DataUrlConnectionTest {
server.start();
log.debug("setting up HTTPBindingProcessor");
- manager = new BindingProcessorManagerImpl(new DummyStalFactory(),
- new SLCommandInvokerImpl(), new DummyConfiguration());
- bindingProcessor = (HTTPBindingProcessor) manager.createBindingProcessor(
- "http://www.iaik.at", null);
+ bindingProcessor = (HTTPBindingProcessorImpl) createBindingProcessor("http");
+
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", InputDecoderFactory.MULTIPART_FORMDATA
+ ";boundary=---------------------------2330864292941");
- ((HTTPBindingProcessor) bindingProcessor).setHTTPHeaders(headers);
+ ((HTTPBindingProcessorImpl) bindingProcessor).setHTTPHeaders(headers);
}
@Before
@@ -91,6 +91,7 @@ public class DataUrlConnectionTest {
@AfterClass
public static void stopServer() {
if (server != null) {
+ Logger log = LoggerFactory.getLogger(DataUrlConnectionTest.class);
log.debug("stopping HTTPServer");
server.stop(0);
}
@@ -98,9 +99,12 @@ public class DataUrlConnectionTest {
@Test
public void testBasicNop() {
- bindingProcessor.consumeRequestStream(requestStream);
- // manager.process(bindingProcessor);
+ bindingProcessor.consumeRequestStream("http://localhost:3495/http-security-layer-request", requestStream);
bindingProcessor.run();
+ SLException e = bindingProcessor.bindingProcessorError;
+ if (e != null) {
+ fail(e.getMessage());
+ }
}
// @Test
@@ -109,8 +113,7 @@ public class DataUrlConnectionTest {
URL dataUrl = new URL("http://localhost:8081/");
log.debug("creating DataUrlConnection " + dataUrl.toString());
- DataUrlConnectionImpl c = new DataUrlConnectionImpl();
- c.init(dataUrl);
+ DataUrlConnectionImpl c = new DataUrlConnectionImpl(dataUrl);
c.setHTTPHeader("httpHeader_1", "001");
ByteArrayInputStream bais = new ByteArrayInputStream("Hello, world!"
@@ -124,6 +127,8 @@ public class DataUrlConnectionTest {
static class DataUrlHandler implements HttpHandler {
+ private final Logger log = LoggerFactory.getLogger(DataUrlConnectionTest.class);
+
public DataUrlHandler() {
log.debug("setting up DataUrlHandler");
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/EmptyMultipartSLRequestTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/EmptyMultipartSLRequestTest.java
deleted file mode 100644
index ee17f5e9..00000000
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/EmptyMultipartSLRequestTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * 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 at.gv.egiz.bku.binding;
-
-import at.gv.egiz.bku.conf.Configuration;
-import iaik.security.ecc.provider.ECCProvider;
-import iaik.security.provider.IAIK;
-import iaik.xml.crypto.XSecProvider;
-
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.security.Provider;
-import java.security.Security;
-import java.security.Provider.Service;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.Before;
-import org.junit.Test;
-
-import at.gv.egiz.bku.conf.Configurator;
-import at.gv.egiz.bku.conf.DummyConfiguration;
-import at.gv.egiz.bku.slcommands.SLCommandFactory;
-import at.gv.egiz.bku.slcommands.impl.xsect.STALProvider;
-
-public class EmptyMultipartSLRequestTest {
-
- private static Log log = LogFactory.getLog(EmptyMultipartSLRequestTest.class);
-
- protected String resourceName = "at/gv/egiz/bku/binding/MultipartEmpty.txt";
-
- protected BindingProcessor bindingProcessor;
- protected InputStream dataStream;
- protected BindingProcessorManager manager;
-
- @Before
- public void setUp() throws MalformedURLException, ClassNotFoundException {
- manager = new BindingProcessorManagerImpl(new DummyStalFactory(),
- new SLCommandInvokerImpl(), new DummyConfiguration());
- HTTPBindingProcessor http = (HTTPBindingProcessor) manager
- .createBindingProcessor("http://www.at/", null);
- Map<String, String> headers = new HashMap<String, String>();
- headers.put("Content-Type", InputDecoderFactory.MULTIPART_FORMDATA
- + ";boundary=uW10q_I9UeqKyw-1o5EW4jtEAaGs7-mC6o");
- http.setHTTPHeaders(headers);
- dataStream = getClass().getClassLoader().getResourceAsStream(resourceName);
- bindingProcessor = http;
- Map<String, String> commandMap = new HashMap<String, String>();
- commandMap
- .put(
- "http://www.buergerkarte.at/namespaces/securitylayer/1.2#:CreateXMLSignatureRequest",
- "at.gv.egiz.bku.slcommands.impl.CreateXMLSignatureCommandImpl");
- commandMap
- .put(
- "http://www.buergerkarte.at/namespaces/securitylayer/1.2#:InfoboxReadRequest",
- "at.gv.egiz.bku.slcommands.impl.InfoboxReadCommandImpl");
- SLCommandFactory.getInstance().setCommandImpl(commandMap);
- Security.insertProviderAt(new IAIK(), 1);
- Security.insertProviderAt(new ECCProvider(false), 2);
- XSecProvider.addAsProvider(false);
- // registering STALProvider as delegation provider for XSECT
- STALProvider stalProvider = new STALProvider();
- Security.addProvider(stalProvider);
- Set<Service> services = stalProvider.getServices();
- StringBuilder sb = new StringBuilder();
- for (Service service : services) {
- String algorithm = service.getType() + "." + service.getAlgorithm();
- XSecProvider.setDelegationProvider(algorithm, stalProvider.getName());
- sb.append("\n" + algorithm);
- }
- log.debug(sb);
- }
-
- @Test
- public void testBasicNop() {
- bindingProcessor.consumeRequestStream(dataStream);
- // manager.process(bindingProcessor);
- bindingProcessor.run();
- }
-
-}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/ExpiryRemoverTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/ExpiryRemoverTest.java
deleted file mode 100644
index faf08c54..00000000
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/ExpiryRemoverTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* 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 at.gv.egiz.bku.binding;
-
-import at.gv.egiz.bku.conf.Configuration;
-import at.gv.egiz.bku.conf.DummyConfiguration;
-import java.net.MalformedURLException;
-
-import org.junit.Test;
-import static org.junit.Assert.*;
-
-public class ExpiryRemoverTest {
-
- @Test
- public void testMe() throws InterruptedException, MalformedURLException {
- //TODO for the moment empty config sufficient (currently only maxDataURLHops configured)
- BindingProcessorManager manager = new BindingProcessorManagerImpl(new DummyStalFactory(),
- new SLCommandInvokerImpl(), new DummyConfiguration());
- BindingProcessor bp = manager.createBindingProcessor("http://www.at", null);
- ExpiryRemover remover = new ExpiryRemover();
- remover.setBindingProcessorManager(manager);
- remover.execute();
- manager.process(bp);
- remover.execute();
- assertTrue(manager.getManagedIds().size() == 1);
- remover.setMaxAcceptedAge(1000);
- Thread.sleep(100);
- remover.execute();
- assertTrue(manager.getManagedIds().size() == 1);
- Thread.sleep(910);
- remover.execute();
- assertTrue(manager.getManagedIds().size() == 0);
- }
-
- @Test
- public void testMe2() throws InterruptedException, MalformedURLException {
- BindingProcessorManager manager = new BindingProcessorManagerImpl(new DummyStalFactory(),
- new SLCommandInvokerImpl(), new DummyConfiguration());
- BindingProcessor bp = manager.createBindingProcessor("http://www.iaik.at", null);
- ExpiryRemover remover = new ExpiryRemover();
- remover.setBindingProcessorManager(manager);
- remover.execute();
- manager.process(bp);
- remover.execute();
- assertTrue(manager.getManagedIds().size() == 1);
- remover.setMaxAcceptedAge(1000);
- Thread.sleep(500);
- remover.execute();
- assertTrue(manager.getManagedIds().size() == 1);
- bp.updateLastAccessTime();
- Thread.sleep(510);
- remover.execute();
- assertTrue(manager.getManagedIds().size() == 1);
- }
-
-}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/FormDataTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/FormDataTest.java
new file mode 100644
index 00000000..4f6e0664
--- /dev/null
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/FormDataTest.java
@@ -0,0 +1,90 @@
+/*
+* Copyright 2008 Federal Chancellery Austria and
+* Graz University of Technology
+*
+* 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 at.gv.egiz.bku.binding;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+import at.gv.egiz.bku.binding.FormDataURLSupplier;
+import at.gv.egiz.bku.utils.StreamUtil;
+import at.gv.egiz.bku.utils.urldereferencer.StreamData;
+import at.gv.egiz.bku.utils.urldereferencer.URLDereferencerImpl;
+
+public class FormDataTest implements FormDataURLSupplier {
+
+ protected InputStream testStream = null;
+ protected String contentType = null;
+ protected String paramName = "";
+
+ @Override
+ public InputStream getFormData(String parameterName) {
+ if (paramName.equals(parameterName)) {
+ return testStream;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public String getFormDataContentType(String parameterName) {
+ if (paramName.equals(parameterName)) {
+ return contentType;
+ } else {
+ return null;
+ }
+ }
+
+ @Test(expected = MalformedURLException.class)
+ public void testInvalidFormdataUrl() throws IOException {
+ String url = "abs://whatknowi";
+ FormDataURLDereferencer dereferencer = new FormDataURLDereferencer(URLDereferencerImpl.getInstance(), this);
+ StreamData sd = dereferencer.dereference(url);
+ assertNull(sd);
+ url = ":://whatknowi";
+ sd = URLDereferencerImpl.getInstance().dereference(url);
+ assertNull(sd);
+ url = "";
+ sd = URLDereferencerImpl.getInstance().dereference(url);
+ }
+
+ @Test
+ public void testFormData() throws IOException {
+ paramName = "Müllcontainer";
+ testStream = new ByteArrayInputStream("HelloWorld".getBytes("UTF-8"));
+ String url = "formdata:"+paramName;
+ FormDataURLDereferencer dereferencer = new FormDataURLDereferencer(URLDereferencerImpl.getInstance(), this);
+ StreamData sd = dereferencer.dereference(url);
+ assertNotNull(sd);
+ String result = StreamUtil.asString(sd.getStream(), "UTF-8");
+ assertEquals("HelloWorld", result);
+ }
+
+ @Test(expected=IOException.class)
+ public void testFormDataNotFound() throws IOException {
+ paramName = "Müllcontainer";
+ testStream = new ByteArrayInputStream("HelloWorld".getBytes("UTF-8"));
+ String url = "formdata:"+paramName+"2";
+ FormDataURLDereferencer dereferencer = new FormDataURLDereferencer(URLDereferencerImpl.getInstance(), this);
+ dereferencer.dereference(url);
+ }
+
+}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/HttpBindingProcessorTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/HttpBindingProcessorTest.java
index d03e1807..994fd1de 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/HttpBindingProcessorTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/HttpBindingProcessorTest.java
@@ -21,23 +21,18 @@ import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
import at.gv.egiz.bku.binding.MultiTestDataUrlConnection.DataSourceProvider;
-import at.gv.egiz.bku.conf.Configuration;
-import at.gv.egiz.bku.conf.DummyConfiguration;
-import at.gv.egiz.bku.utils.StreamUtil;
-public class HttpBindingProcessorTest {
+public class HttpBindingProcessorTest extends AbstractBindingProcessorTest {
public static class TestDataSource implements DataSourceProvider {
@@ -80,33 +75,32 @@ public class HttpBindingProcessorTest {
}
}
- protected BindingProcessorManager manager;
- protected HTTPBindingProcessor bindingProcessor;
+ protected static String requestUrl = "http://localhost:3495/http-security-layer-request";
+ protected static String dataUrl = "http://localhost:8080/dataUrl";
+
+ protected HTTPBindingProcessorImpl bindingProcessor;
protected Map<String, String> serverHeaderMap;
protected Map<String, String> clientHeaderMap;
protected TestDataUrlConnection server;
- protected static ApplicationContext appCtx;
-
- @BeforeClass
- public static void setUpClass() {
- appCtx = new ClassPathXmlApplicationContext("at/gv/egiz/bku/slcommands/testApplicationContext.xml");
- }
-
-
@Before
public void setUp() throws IOException {
- server = new TestDataUrlConnection();
- DataUrl.setDataUrlConnectionImpl(server);
+
+ DataUrl.setConnectionFactory(new DataURLConnectionFactory() {
+ @Override
+ public DataUrlConnection openConnection(URL url) {
+ return server;
+ }
+ });
serverHeaderMap = new HashMap<String, String>();
serverHeaderMap.put("Content-Type", HttpUtil.TXT_XML);
+ server = new TestDataUrlConnection(new URL(dataUrl));
server.setResponseCode(200);
server.setResponseContent("<ok/>");
server.setResponseHeaders(serverHeaderMap);
- manager = new BindingProcessorManagerImpl(new DummyStalFactory(),
- new SLCommandInvokerImpl(), new DummyConfiguration());
- bindingProcessor = (HTTPBindingProcessor) manager.createBindingProcessor(
- "http://www.iaik.at", null);
+
+ bindingProcessor = (HTTPBindingProcessorImpl) createBindingProcessor("http");
+
clientHeaderMap = new HashMap<String, String>();
clientHeaderMap.put("Content-Type",
"application/x-www-form-urlencoded;charset=utf8");
@@ -123,12 +117,14 @@ public class HttpBindingProcessorTest {
public void testWithoutDataUrlWithoutStylesheet() throws IOException {
RequestFactory rf = new RequestFactory();
rf.addForm("Haßnsi", "Wüurzel");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
bindingProcessor.run();
assertEquals(HttpUtil.TXT_XML, bindingProcessor.getResultContentType());
+ String result = resultAsString("UTF-8");
+ System.out.println(result);
assertTrue(resultAsString("UTF-8").indexOf("NullOperationResponse") != -1);
assertEquals(200, bindingProcessor.getResponseCode());
- assertEquals(0, bindingProcessor.getResponseHeaders().size());
+ assertEquals(2, bindingProcessor.getResponseHeaders().size());
}
@Test
@@ -137,19 +133,19 @@ public class HttpBindingProcessorTest {
rf.addForm("Hansi", "Wurzel");
rf.addFormAsResource("Styleshit", "at/gv/egiz/bku/binding/stylesheet.xslt");
rf.addForm(RequestFactory.STYLESHEETURL, "formdata:Styleshit");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
bindingProcessor.run();
assertEquals(HttpUtil.TXT_HTML, bindingProcessor.getResultContentType());
assertTrue(resultAsString("UTF-8").indexOf("NullKommaJosef") != -1);
assertEquals(200, bindingProcessor.getResponseCode());
- assertEquals(0, bindingProcessor.getResponseHeaders().size());
+ assertEquals(2, bindingProcessor.getResponseHeaders().size());
}
@Test
public void testWithDataUrl301WithStylesheet() throws IOException {
RequestFactory rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(301);
rf = new RequestFactory();
rf.addFormAsResource("Styleshit", "at/gv/egiz/bku/binding/stylesheet.xslt");
@@ -166,7 +162,7 @@ public class HttpBindingProcessorTest {
public void testWithDataUrl302WithStylesheet() throws IOException {
RequestFactory rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(302);
rf = new RequestFactory();
rf.addFormAsResource("Styleshit", "at/gv/egiz/bku/binding/stylesheet.xslt");
@@ -183,7 +179,7 @@ public class HttpBindingProcessorTest {
public void testWithDataUrl303WithStylesheet() throws IOException {
RequestFactory rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(303);
rf = new RequestFactory();
rf.addFormAsResource("Styleshit", "at/gv/egiz/bku/binding/stylesheet.xslt");
@@ -200,7 +196,7 @@ public class HttpBindingProcessorTest {
public void testWithDataUrl306WithStylesheet() throws IOException {
RequestFactory rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(306);
rf = new RequestFactory();
rf.addFormAsResource("Styleshit", "at/gv/egiz/bku/binding/stylesheet.xslt");
@@ -210,14 +206,14 @@ public class HttpBindingProcessorTest {
assertEquals(HttpUtil.TXT_XML, bindingProcessor.getResultContentType());
assertTrue(resultAsString("UTF-8").indexOf("ErrorResponse") != -1);
assertEquals(200, bindingProcessor.getResponseCode());
- assertTrue(bindingProcessor.getResponseHeaders().size() == 0);
+ assertTrue(bindingProcessor.getResponseHeaders().size() == 2);
}
@Test
public void testWithDataUrl307NonXML() throws IOException {
RequestFactory rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(307);
serverHeaderMap.put("Content-Type", HttpUtil.TXT_PLAIN);
server.setResponseHeaders(serverHeaderMap);
@@ -229,14 +225,14 @@ public class HttpBindingProcessorTest {
assertEquals(HttpUtil.TXT_PLAIN, bindingProcessor.getResultContentType());
assertTrue(resultAsString("UTF-8").indexOf("NullOperationRequest") != -1);
assertEquals(307, bindingProcessor.getResponseCode());
- assertTrue(bindingProcessor.getResponseHeaders().size() > 0);
+ assertTrue(bindingProcessor.getResponseHeaders().size() > 2);
}
@Test
public void testWithInvalidDataUrl307XML() throws IOException {
RequestFactory rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(307);
serverHeaderMap.put("Content-Type", HttpUtil.TXT_XML);
serverHeaderMap.put("Location", "noUrl");
@@ -247,13 +243,12 @@ public class HttpBindingProcessorTest {
assertEquals(HttpUtil.TXT_XML, bindingProcessor.getResultContentType());
assertTrue(resultAsString("UTF-8").indexOf("ErrorResponse") != -1);
assertEquals(200, bindingProcessor.getResponseCode());
- assertTrue(bindingProcessor.getResponseHeaders().size() == 0);
+ assertTrue(bindingProcessor.getResponseHeaders().size() == 2);
}
@Test
public void testWithValidDataUrl307XML() throws IOException, InterruptedException {
- server = new MultiTestDataUrlConnection();
- DataUrl.setDataUrlConnectionImpl(server);
+ server = new MultiTestDataUrlConnection(null);
TestDataSource tds = new TestDataSource();
((MultiTestDataUrlConnection)server).setDataSource(tds);
@@ -275,7 +270,7 @@ public class HttpBindingProcessorTest {
rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
bindingProcessor.run();
assertTrue(bindingProcessor.getResponseHeaders().size()>0);
@@ -290,7 +285,7 @@ public class HttpBindingProcessorTest {
RequestFactory rf = new RequestFactory();
rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(200);
rf = new RequestFactory();
rf.addFormAsResource("Styleshit", "at/gv/egiz/bku/binding/stylesheet.xslt");
@@ -298,7 +293,7 @@ public class HttpBindingProcessorTest {
server.setResponseHeaders(serverHeaderMap);
server.setResponseContent(rf.getURLencodedAsString());
bindingProcessor.run();
- assertTrue(bindingProcessor.getResponseHeaders().size()==0);
+ assertTrue(bindingProcessor.getResponseHeaders().size() == 2);
assertEquals(200,bindingProcessor.getResponseCode());
assertEquals(HttpUtil.TXT_XML, bindingProcessor.getResultContentType());
assertTrue(resultAsString("UTF-8").indexOf("NullOperationResponse") != -1);
@@ -309,7 +304,7 @@ public class HttpBindingProcessorTest {
RequestFactory rf = new RequestFactory();
rf = new RequestFactory();
rf.addForm(RequestFactory.DATAURL, "http://localhost:8080");
- bindingProcessor.consumeRequestStream(rf.getURLencoded());
+ bindingProcessor.consumeRequestStream(requestUrl, rf.getURLencoded());
server.setResponseCode(200);
rf = new RequestFactory();
rf.addFormAsResource("Styleshit", "at/gv/egiz/bku/binding/stylesheet.xslt");
@@ -318,7 +313,7 @@ public class HttpBindingProcessorTest {
server.setResponseHeaders(serverHeaderMap);
server.setResponseContent(rf.getURLencodedAsString());
bindingProcessor.run();
- assertTrue(bindingProcessor.getResponseHeaders().size()==0);
+ assertTrue(bindingProcessor.getResponseHeaders().size() == 2);
assertEquals(200,bindingProcessor.getResponseCode());
assertEquals(HttpUtil.TXT_HTML, bindingProcessor.getResultContentType());
assertTrue(resultAsString("UTF-8").indexOf("NullKommaJosef") != -1);
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultiTestDataUrlConnection.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultiTestDataUrlConnection.java
index 5d2a7544..363757d7 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultiTestDataUrlConnection.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultiTestDataUrlConnection.java
@@ -17,10 +17,15 @@
package at.gv.egiz.bku.binding;
import java.io.IOException;
+import java.net.URL;
import java.util.Map;
public class MultiTestDataUrlConnection extends TestDataUrlConnection {
+ public MultiTestDataUrlConnection(URL url) {
+ super(url);
+ }
+
public static interface DataSourceProvider {
public Map<String, String> getResponseHeaders();
public String getResponseContent();
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultipartSLRequestTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultipartSLRequestTest.java
index 1a9a6a70..0ac23c69 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultipartSLRequestTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/MultipartSLRequestTest.java
@@ -16,44 +16,80 @@
*/
package at.gv.egiz.bku.binding;
-import at.gv.egiz.bku.conf.DummyConfiguration;
+import static org.junit.Assert.*;
+
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
import java.util.Map;
-import org.junit.Before;
import org.junit.Test;
-public class MultipartSLRequestTest {
+public class MultipartSLRequestTest extends AbstractBindingProcessorTest {
- protected String resourceName = "at/gv/egiz/bku/binding/MultipartFromTutorial.txt";
+ @Test
+ public void testMultipartFromTutorial() throws MalformedURLException {
- protected BindingProcessor bindingProcessor;
- protected InputStream dataStream;
- protected BindingProcessorManager manager;
+ HTTPBindingProcessorImpl http = (HTTPBindingProcessorImpl) createBindingProcessor("http");
- @Before
- public void setUp() throws MalformedURLException {
- manager = new BindingProcessorManagerImpl(new DummyStalFactory(),
- new SLCommandInvokerImpl(), new DummyConfiguration());
- HTTPBindingProcessor http = (HTTPBindingProcessor) manager
- .createBindingProcessor("http://www.at/", null);
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", InputDecoderFactory.MULTIPART_FORMDATA
+ ";boundary=---------------------------2330864292941");
http.setHTTPHeaders(headers);
- dataStream = getClass().getClassLoader().getResourceAsStream(resourceName);
- bindingProcessor = http;
+
+ InputStream dataStream = getClass().getClassLoader().getResourceAsStream(
+ "at/gv/egiz/bku/binding/MultipartFromTutorial.txt");
+
+ http.consumeRequestStream("http://localhost:3495/http-security-layer-request", dataStream);
+ http.run();
+
+ assertNotNull(http.bindingProcessorError);
+ assertEquals(4011, http.bindingProcessorError.getErrorCode());
+
}
@Test
- public void testBasicNop() {
- bindingProcessor.consumeRequestStream(dataStream);
- // manager.process(bindingProcessor);
- bindingProcessor.run();
+ public void testMultipartEmpty() throws MalformedURLException, ClassNotFoundException {
+
+ HTTPBindingProcessorImpl http = (HTTPBindingProcessorImpl) createBindingProcessor("http");
+
+ Map<String, String> headers = new HashMap<String, String>();
+ headers.put("Content-Type", InputDecoderFactory.MULTIPART_FORMDATA
+ + ";boundary=uW10q_I9UeqKyw-1o5EW4jtEAaGs7-mC6o");
+ http.setHTTPHeaders(headers);
+
+ InputStream dataStream = getClass().getClassLoader().getResourceAsStream(
+ "at/gv/egiz/bku/binding/MultipartEmpty.txt");
+
+ http.consumeRequestStream("http://localhost:3495/http-security-layer-request", dataStream);
+ http.run();
+
+ if (http.bindingProcessorError != null) {
+ fail(http.bindingProcessorError.getMessage());
+ }
+
+ }
+
+ @Test
+ public void testNulloperationRequest() throws MalformedURLException, ClassNotFoundException {
+
+ HTTPBindingProcessorImpl http = (HTTPBindingProcessorImpl) createBindingProcessor("http");
+
+ Map<String, String> headers = new HashMap<String, String>();
+ headers.put("Content-Type", "application/x-www-form-urlencoded");
+ http.setHTTPHeaders(headers);
+
+ InputStream dataStream = getClass().getClassLoader().getResourceAsStream(
+ "at/gv/egiz/bku/binding/NulloperationRequest.txt.bin");
+
+ http.consumeRequestStream("http://localhost:3495/http-security-layer-request", dataStream);
+ http.run();
+
+ if (http.bindingProcessorError != null) {
+ fail(http.bindingProcessorError.getMessage());
+ }
+
}
+
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/NullOperationTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/NullOperationTest.java
deleted file mode 100644
index 58c82c49..00000000
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/NullOperationTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* 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 at.gv.egiz.bku.binding;
-
-import at.gv.egiz.bku.conf.DummyConfiguration;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class NullOperationTest {
-
- protected String resourceName = "at/gv/egiz/bku/binding/NulloperationRequest.txt.bin";
-
- protected BindingProcessor bindingProcessor;
- protected InputStream dataStream;
- protected BindingProcessorManager manager;
-
- @Before
- public void setUp() throws MalformedURLException {
- manager = new BindingProcessorManagerImpl(new DummyStalFactory(), new SLCommandInvokerImpl(), new DummyConfiguration());
- HTTPBindingProcessor http = (HTTPBindingProcessor) manager.createBindingProcessor("http://www.at/", null);
- Map<String, String> headers = new HashMap<String, String>();
- headers.put("Content-Type", "application/x-www-form-urlencoded");
- http.setHTTPHeaders(headers);
- dataStream = getClass().getClassLoader().getResourceAsStream(resourceName);
- bindingProcessor = http;
- }
-
- @Test
- public void testBasicNop() {
- bindingProcessor.consumeRequestStream(dataStream);
- //manager.process(bindingProcessor);
- bindingProcessor.run();
- }
-
-}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/SSLDataUrlConnectionTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/SSLDataUrlConnectionTest.java
index 79757244..ae146bfe 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/SSLDataUrlConnectionTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/SSLDataUrlConnectionTest.java
@@ -16,24 +16,22 @@
*/
package at.gv.egiz.bku.binding;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-import java.net.URL;
-
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+
import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.Test;
@Ignore
public class SSLDataUrlConnectionTest {
@Test
public void testVerisign() throws IOException {
- URL url = new URL("https://www.verisign.com:443");
- DataUrlConnectionImpl uc = new DataUrlConnectionImpl();
- uc.init(url);
+ DataUrl dataUrl = new DataUrl("https://www.verisign.com:443");
+ HttpsDataURLConnection uc = (HttpsDataURLConnection) dataUrl.openConnection();
uc.connect();
- assertNotNull(uc.getServerCertificate());
+ assertNotNull(uc.getServerCertificates());
//uc.transmit(null);
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/TestDataUrlConnection.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/TestDataUrlConnection.java
index 0a24b5c5..a83fff17 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/TestDataUrlConnection.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/TestDataUrlConnection.java
@@ -14,137 +14,111 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package at.gv.egiz.bku.binding;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.SocketTimeoutException;
-import java.net.URL;
-import java.security.cert.X509Certificate;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
+package at.gv.egiz.bku.binding;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLPeerUnverifiedException;
import javax.net.ssl.SSLSocketFactory;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.Ignore;
-
-import at.gv.egiz.bku.slcommands.SLResult;
-
-@Ignore
-public class TestDataUrlConnection implements DataUrlConnectionSPI {
-
-
- protected Log log = LogFactory.getLog(TestDataUrlConnection.class);
- protected X509Certificate serverCertificate;
- protected Map<String, String> responseHeaders = Collections.EMPTY_MAP;
- protected Map<String, String> requestHeaders = new HashMap<String, String>();
- protected String responseContent = "";
- protected int responseCode = 200;
-
- protected URL url;
-
- @Override
- public void init(URL url) {
- log.debug("Init Testdataurlconnection to url: " + url);
- this.url = url;
- }
-
- @Override
- public void connect() throws SocketTimeoutException, IOException {
- log.debug("Dummy connect to Testdataurlconnection to url: " + url);
-
- }
-
- @Override
- public String getProtocol() {
- return url.getProtocol();
- }
-
- @Override
- public DataUrlResponse getResponse() throws IOException {
- String ct = responseHeaders.get(HttpUtil.HTTP_HEADER_CONTENT_TYPE);
- if (ct != null) {
- ct = HttpUtil.getCharset(ct, true);
- } else {
- ct = HttpUtil.DEFAULT_CHARSET;
- }
- DataUrlResponse response = new DataUrlResponse(url.toString(), responseCode, new ByteArrayInputStream(responseContent.getBytes(ct)));
- response.setResponseHttpHeaders(responseHeaders);
- return response;
- }
-
- @Override
- public X509Certificate getServerCertificate() {
- return serverCertificate;
- }
-
- @Override
- public void setHTTPFormParameter(String name, InputStream data,
- String contentType, String charSet, String transferEncoding) {
- // TODO Auto-generated method stub
- }
-
- @Override
- public void setHTTPHeader(String key, String value) {
- requestHeaders.put(key, value);
- }
-
- @Override
- public void transmit(SLResult slResult) throws IOException {
- log.debug("Dummy transmit to url: " + url);
- }
-
- public void setServerCertificate(X509Certificate serverCertificate) {
- this.serverCertificate = serverCertificate;
- }
-
- public void setResponseHeaders(Map<String, String> responseHeaders) {
- this.responseHeaders = responseHeaders;
- }
-
- public void setResponseContent(String responseContent) {
- this.responseContent = responseContent;
- }
-
- public void setResponseCode(int responseCode) {
- this.responseCode = responseCode;
- }
-
- public Map<String, String> getRequestHeaders() {
- return requestHeaders;
- }
-
- @Override
- public DataUrlConnectionSPI newInstance() {
- return this;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.junit.Ignore;
+
+import at.gv.egiz.bku.slcommands.SLResult;
+
+@Ignore
+public class TestDataUrlConnection extends HttpsDataURLConnection {
+
+ protected final Logger log = LoggerFactory.getLogger(TestDataUrlConnection.class);
+ protected X509Certificate serverCertificate;
+ protected Map<String, String> responseHeaders = Collections.emptyMap();
+ protected Map<String, String> requestHeaders = new HashMap<String, String>();
+ protected String responseContent = "";
+ protected int responseCode = 200;
+
+ public TestDataUrlConnection(URL url) {
+ super(url);
}
+
- @Override
- public URL getUrl() {
- return url;
- }
+ @Override
+ public void connect() throws SocketTimeoutException, IOException {
+ log.debug("Dummy connect to Testdataurlconnection to url: " + url);
+
+ }
@Override
- public void setConfiguration(Properties config) {
- // TODO Auto-generated method stub
-
+ public DataUrlResponse getResponse() throws IOException {
+ String ct = responseHeaders.get(HttpUtil.HTTP_HEADER_CONTENT_TYPE);
+ if (ct != null) {
+ ct = HttpUtil.getCharset(ct, true);
+ } else {
+ ct = HttpUtil.DEFAULT_CHARSET;
+ }
+ DataUrlResponse response = new DataUrlResponse("" + url, responseCode, new ByteArrayInputStream(responseContent.getBytes(ct)));
+ response.setResponseHttpHeaders(responseHeaders);
+ return response;
+ }
+
+ @Override
+ public void setHTTPFormParameter(String name, InputStream data,
+ String contentType, String charSet, String transferEncoding) {
+ }
+
+ @Override
+ public void setHTTPHeader(String key, String value) {
+ requestHeaders.put(key, value);
+ }
+
+ @Override
+ public void transmit(SLResult slResult) throws IOException {
+ log.debug("Dummy transmit to url: " + url);
+ }
+
+ public void setServerCertificate(X509Certificate serverCertificate) {
+ this.serverCertificate = serverCertificate;
+ }
+
+ public void setResponseHeaders(Map<String, String> responseHeaders) {
+ this.responseHeaders = responseHeaders;
+ }
+
+ public void setResponseContent(String responseContent) {
+ this.responseContent = responseContent;
+ }
+
+ public void setResponseCode(int responseCode) {
+ this.responseCode = responseCode;
+ }
+
+ public Map<String, String> getRequestHeaders() {
+ return requestHeaders;
}
@Override
public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
- // TODO Auto-generated method stub
-
}
@Override
public void setSSLSocketFactory(SSLSocketFactory socketFactory) {
- // TODO Auto-generated method stub
-
- }
- }
+ }
+
+
+ @Override
+ public Certificate[] getServerCertificates()
+ throws SSLPeerUnverifiedException, IllegalStateException {
+ return new Certificate[] {serverCertificate};
+ }
+
+ }
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/XWWWFormUrlInputIteratorTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/binding/XWWWFormUrlInputIteratorTest.java
index 4d81f038..57484fa8 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/XWWWFormUrlInputIteratorTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/binding/XWWWFormUrlInputIteratorTest.java
@@ -4,17 +4,13 @@ import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLEncoder;
-import java.nio.CharBuffer;
-import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import org.junit.Ignore;
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/conf/CertValidatorTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/conf/CertValidatorTest.java
deleted file mode 100644
index d97d741d..00000000
--- a/bkucommon/src/test/java/at/gv/egiz/bku/conf/CertValidatorTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package at.gv.egiz.bku.conf;
-
-import iaik.x509.X509Certificate;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.security.cert.CertificateException;
-
-import static org.junit.Assert.*;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class CertValidatorTest {
-
- private CertValidator cv;
-
- @Before
- public void setUp() throws URISyntaxException {
- cv = new CertValidatorImpl();
- URL caDir = getClass().getClassLoader().getResource("at/gv/egiz/bku/conf/certs/CACerts");
- URL certDir = getClass().getClassLoader().getResource("at/gv/egiz/bku/conf/certs/certStore");
- cv.init(new File(caDir.toURI()), new File(certDir.toURI()));
- }
-
- @Test
- public void testValid() throws CertificateException, IOException {
- X509Certificate cert = new X509Certificate(getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/conf/certs/testCerts/www.a-trust.at.der"));
- assertTrue(cv.isCertificateValid("TID", new X509Certificate[]{cert}));
- }
-
-}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/conf/DummyConfiguration.java b/bkucommon/src/test/java/at/gv/egiz/bku/conf/DummyConfiguration.java
deleted file mode 100644
index 1e0e5aa9..00000000
--- a/bkucommon/src/test/java/at/gv/egiz/bku/conf/DummyConfiguration.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * 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 at.gv.egiz.bku.conf;
-
-/**
- *
- * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
- */
-public class DummyConfiguration extends Configuration {
-
- public DummyConfiguration() {
- this.setMaxDataUrlHops(MAX_DATAURL_HOPS_DEFAULT);
- //this.set...
- }
-
-
-}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/SLCommandFactoryTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/SLCommandFactoryTest.java
index 7a087b38..4b89880d 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/SLCommandFactoryTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/SLCommandFactoryTest.java
@@ -34,13 +34,11 @@ import at.gv.egiz.bku.slexceptions.SLCommandException;
import at.gv.egiz.bku.slexceptions.SLRequestException;
import at.gv.egiz.bku.slexceptions.SLRuntimeException;
import at.gv.egiz.bku.slexceptions.SLVersionException;
-import at.gv.egiz.stal.dummy.DummySTAL;
public class SLCommandFactoryTest {
protected static ApplicationContext appCtx;
- SLCommandFactory factory;
- SLCommandContext context;
+ protected SLCommandFactory factory;
@BeforeClass
public static void setUpClass() {
@@ -49,9 +47,10 @@ public class SLCommandFactoryTest {
@Before
public void setUp() {
- factory = SLCommandFactory.getInstance();
- context = new SLCommandContext();
- context.setSTAL(new DummySTAL());
+ Object bean = appCtx.getBean("slCommandFactory");
+ assertTrue(bean instanceof SLCommandFactory);
+
+ factory = (SLCommandFactory) bean;
}
@Test
@@ -60,7 +59,7 @@ public class SLCommandFactoryTest {
"<NullOperationRequest xmlns=\"http://www.buergerkarte.at/namespaces/securitylayer/1.2#\"/>");
Source source = new StreamSource(requestReader);
- SLCommand slCommand = factory.createSLCommand(source, context);
+ SLCommand slCommand = factory.createSLCommand(source);
assertTrue(slCommand instanceof NullOperationCommand);
}
@@ -71,7 +70,7 @@ public class SLCommandFactoryTest {
"<CreateCMSSignatureRequest xmlns=\"http://www.buergerkarte.at/namespaces/securitylayer/1.2#\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.buergerkarte.at/namespaces/securitylayer/1.2# file:/home/clemens/IAIK/BKU2/svn/bku/utils/src/main/schema/Core-1.2.xsd\" Structure=\"detached\"><KeyboxIdentifier></KeyboxIdentifier><DataObject><MetaInfo><MimeType></MimeType></MetaInfo><Content><Base64Content></Base64Content></Content></DataObject></CreateCMSSignatureRequest>");
Source source = new StreamSource(requestReader);
- factory.createSLCommand(source, context);
+ factory.createSLCommand(source);
}
@@ -83,7 +82,7 @@ public class SLCommandFactoryTest {
"</NullOperationRequest>");
Source source = new StreamSource(requestReader);
- factory.createSLCommand(source, context);
+ factory.createSLCommand(source);
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/CreateXMLSignatureComandImplTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/CreateXMLSignatureComandImplTest.java
index 4e9b4cd7..4f56b423 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/CreateXMLSignatureComandImplTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/CreateXMLSignatureComandImplTest.java
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertTrue;
import iaik.xml.crypto.XSecProvider;
import java.io.InputStream;
-import java.security.Security;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
@@ -29,41 +28,56 @@ import javax.xml.transform.stream.StreamSource;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import at.gv.egiz.bku.slcommands.CreateXMLSignatureCommand;
+import at.gv.egiz.bku.slcommands.ErrorResult;
import at.gv.egiz.bku.slcommands.InfoboxReadCommand;
import at.gv.egiz.bku.slcommands.SLCommand;
import at.gv.egiz.bku.slcommands.SLCommandContext;
import at.gv.egiz.bku.slcommands.SLCommandFactory;
import at.gv.egiz.bku.slcommands.SLResult;
-import at.gv.egiz.bku.slcommands.impl.xsect.STALProvider;
import at.gv.egiz.bku.slexceptions.SLCommandException;
import at.gv.egiz.bku.slexceptions.SLRequestException;
import at.gv.egiz.bku.slexceptions.SLRuntimeException;
import at.gv.egiz.bku.slexceptions.SLVersionException;
+import at.gv.egiz.bku.utils.urldereferencer.URLDereferencer;
import at.gv.egiz.stal.STAL;
-import at.gv.egiz.stal.dummy.DummySTAL;
+import at.gv.egiz.stal.STALFactory;
//@Ignore
public class CreateXMLSignatureComandImplTest {
- private SLCommandFactory factory;
+ protected static ApplicationContext appCtx;
+ private SLCommandFactory factory;
+
+ private STAL stal;
+
+ private URLDereferencer urlDereferencer;
- private STAL stal;
-
@BeforeClass
public static void setUpClass() {
-
- new ClassPathXmlApplicationContext("at/gv/egiz/bku/slcommands/testApplicationContext.xml");
-
- Security.addProvider(new STALProvider());
+ appCtx = new ClassPathXmlApplicationContext("at/gv/egiz/bku/slcommands/testApplicationContext.xml");
XSecProvider.addAsProvider(true);
}
@Before
public void setUp() {
- factory = SLCommandFactory.getInstance();
- stal = new DummySTAL();
+ Object bean = appCtx.getBean("slCommandFactory");
+ assertTrue(bean instanceof SLCommandFactory);
+
+ factory = (SLCommandFactory) bean;
+
+ bean = appCtx.getBean("stalFactory");
+ assertTrue(bean instanceof STALFactory);
+
+ stal = ((STALFactory) bean).createSTAL();
+
+ bean = appCtx.getBean("urlDereferencer");
+ assertTrue(bean instanceof URLDereferencer);
+
+ urlDereferencer = (URLDereferencer) bean;
+
}
@Test
@@ -71,33 +85,34 @@ public class CreateXMLSignatureComandImplTest {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/createxmlsignaturerequest/CreateXMLSignatureRequest.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- context.setSTAL(stal);
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof CreateXMLSignatureCommand);
- SLResult result = command.execute();
+ SLCommandContext context = new SLCommandContext(stal, urlDereferencer);
+ SLResult result = command.execute(context);
result.writeTo(new StreamResult(System.out), false);
}
-// @Test(expected=SLCommandException.class)
+ @Test(expected=SLCommandException.class)
public void testInfboxReadRequestInvalid1() throws SLCommandException, SLRuntimeException, SLRequestException, SLVersionException {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.Invalid-1.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof InfoboxReadCommand);
}
-// @Test(expected=SLCommandException.class)
+ @Test
public void testInfboxReadRequestInvalid2() throws SLCommandException, SLRuntimeException, SLRequestException, SLVersionException {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.Invalid-2.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
- assertTrue(command instanceof InfoboxReadCommand);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
+ assertTrue(command instanceof InfoboxReadCommandImpl);
+
+ SLCommandContext context = new SLCommandContext(stal, urlDereferencer);
+ SLResult result = command.execute(context);
+ assertTrue(result instanceof ErrorResult);
}
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/InfoboxReadComandImplTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/InfoboxReadComandImplTest.java
index bfc784f7..814ef8a9 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/InfoboxReadComandImplTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/InfoboxReadComandImplTest.java
@@ -40,18 +40,20 @@ import at.gv.egiz.bku.slexceptions.SLCommandException;
import at.gv.egiz.bku.slexceptions.SLRequestException;
import at.gv.egiz.bku.slexceptions.SLRuntimeException;
import at.gv.egiz.bku.slexceptions.SLVersionException;
+import at.gv.egiz.bku.utils.urldereferencer.URLDereferencer;
import at.gv.egiz.stal.STAL;
-import at.gv.egiz.stal.dummy.DummySTAL;
+import at.gv.egiz.stal.STALFactory;
//@Ignore
public class InfoboxReadComandImplTest {
- private static ApplicationContext appCtx;
+ protected static ApplicationContext appCtx;
+ private SLCommandFactory factory;
+
+ private STAL stal;
+
+ private URLDereferencer urlDereferencer;
- private SLCommandFactory factory;
-
- private STAL stal;
-
@BeforeClass
public static void setUpClass() {
appCtx = new ClassPathXmlApplicationContext("at/gv/egiz/bku/slcommands/testApplicationContext.xml");
@@ -59,8 +61,20 @@ public class InfoboxReadComandImplTest {
@Before
public void setUp() {
- factory = SLCommandFactory.getInstance();
- stal = new DummySTAL();
+ Object bean = appCtx.getBean("slCommandFactory");
+ assertTrue(bean instanceof SLCommandFactory);
+
+ factory = (SLCommandFactory) bean;
+
+ bean = appCtx.getBean("stalFactory");
+ assertTrue(bean instanceof STALFactory);
+
+ stal = ((STALFactory) bean).createSTAL();
+
+ bean = appCtx.getBean("urlDereferencer");
+ assertTrue(bean instanceof URLDereferencer);
+
+ urlDereferencer = (URLDereferencer) bean;
}
@Test
@@ -68,12 +82,12 @@ public class InfoboxReadComandImplTest {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
+ SLCommandContext context = new SLCommandContext(stal, urlDereferencer);
context.setSTAL(stal);
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof InfoboxReadCommand);
- SLResult result = command.execute();
+ SLResult result = command.execute(context);
result.writeTo(new StreamResult(System.out), false);
}
@@ -82,9 +96,7 @@ public class InfoboxReadComandImplTest {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.Invalid-1.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- context.setSTAL(stal);
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof InfoboxReadCommand);
}
@@ -92,12 +104,11 @@ public class InfoboxReadComandImplTest {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.Invalid-2.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- context.setSTAL(stal);
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommandContext context = new SLCommandContext(stal, urlDereferencer);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof InfoboxReadCommand);
- SLResult result = command.execute();
+ SLResult result = command.execute(context);
assertTrue(result instanceof ErrorResult);
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/SVPersonendatenInfoboxImplTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/SVPersonendatenInfoboxImplTest.java
index a17f0797..2627de72 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/SVPersonendatenInfoboxImplTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/SVPersonendatenInfoboxImplTest.java
@@ -19,6 +19,7 @@ package at.gv.egiz.bku.slcommands.impl;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import iaik.asn1.CodingException;
+import iaik.xml.crypto.XSecProvider;
import java.io.IOException;
import java.io.InputStream;
@@ -29,7 +30,8 @@ import javax.xml.bind.Marshaller;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
-import org.junit.Ignore;
+import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -47,8 +49,9 @@ import at.gv.egiz.bku.slexceptions.SLCommandException;
import at.gv.egiz.bku.slexceptions.SLRequestException;
import at.gv.egiz.bku.slexceptions.SLRuntimeException;
import at.gv.egiz.bku.slexceptions.SLVersionException;
+import at.gv.egiz.bku.utils.urldereferencer.URLDereferencer;
import at.gv.egiz.stal.STAL;
-import at.gv.egiz.stal.dummy.DummySTAL;
+import at.gv.egiz.stal.STALFactory;
//@Ignore
public class SVPersonendatenInfoboxImplTest {
@@ -70,22 +73,37 @@ public class SVPersonendatenInfoboxImplTest {
(byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x5a
};
- private static ApplicationContext appCtx;
+ protected static ApplicationContext appCtx;
+ private SLCommandFactory factory;
+
+ private STAL stal;
- private SLCommandFactory factory;
-
- private STAL stal;
-
-// @BeforeClass
+ private URLDereferencer urlDereferencer;
+
+ @BeforeClass
public static void setUpClass() {
appCtx = new ClassPathXmlApplicationContext("at/gv/egiz/bku/slcommands/testApplicationContext.xml");
+ XSecProvider.addAsProvider(true);
}
+
+ @Before
+ public void setUp() {
+ Object bean = appCtx.getBean("slCommandFactory");
+ assertTrue(bean instanceof SLCommandFactory);
+
+ factory = (SLCommandFactory) bean;
+
+ bean = appCtx.getBean("stalFactory");
+ assertTrue(bean instanceof STALFactory);
+
+ stal = ((STALFactory) bean).createSTAL();
+
+ bean = appCtx.getBean("urlDereferencer");
+ assertTrue(bean instanceof URLDereferencer);
+
+ urlDereferencer = (URLDereferencer) bean;
-// @Before
- public void setUp() {
- factory = SLCommandFactory.getInstance();
- stal = new DummySTAL();
- }
+ }
@Test
public void testEHIC() throws SLCommandException, JAXBException, CodingException, IOException {
@@ -102,44 +120,38 @@ public class SVPersonendatenInfoboxImplTest {
}
- @Ignore
@Test
public void testInfboxReadRequest() throws SLCommandException, SLRuntimeException, SLRequestException, SLVersionException {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- context.setSTAL(stal);
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommandContext context = new SLCommandContext(stal, urlDereferencer);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof InfoboxReadCommand);
- SLResult result = command.execute();
+ SLResult result = command.execute(context);
result.writeTo(new StreamResult(System.out), false);
}
- @Ignore
@Test(expected=SLCommandException.class)
public void testInfboxReadRequestInvalid1() throws SLCommandException, SLRuntimeException, SLRequestException, SLVersionException {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.Invalid-1.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- context.setSTAL(stal);
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof InfoboxReadCommand);
}
- @Ignore
+ @Test
public void testInfboxReadRequestInvalid2() throws SLCommandException, SLRuntimeException, SLRequestException, SLVersionException {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("at/gv/egiz/bku/slcommands/infoboxreadcommand/IdentityLink.Binary.Invalid-2.xml");
assertNotNull(inputStream);
- SLCommandContext context = new SLCommandContext();
- context.setSTAL(stal);
- SLCommand command = factory.createSLCommand(new StreamSource(inputStream), context);
+ SLCommandContext context = new SLCommandContext(stal, urlDereferencer);
+ SLCommand command = factory.createSLCommand(new StreamSource(inputStream));
assertTrue(command instanceof InfoboxReadCommand);
- SLResult result = command.execute();
+ SLResult result = command.execute(context);
assertTrue(result instanceof ErrorResult);
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/xsect/SignatureTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/xsect/SignatureTest.java
index 0a34c8f3..6a413483 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/xsect/SignatureTest.java
+++ b/bkucommon/src/test/java/at/gv/egiz/bku/slcommands/impl/xsect/SignatureTest.java
@@ -73,14 +73,11 @@ import at.gv.egiz.bku.slexceptions.SLRequestException;
import at.gv.egiz.bku.slexceptions.SLViewerException;
import at.gv.egiz.bku.utils.urldereferencer.StreamData;
import at.gv.egiz.bku.utils.urldereferencer.URLDereferencer;
-import at.gv.egiz.bku.utils.urldereferencer.URLDereferencerContext;
+import at.gv.egiz.bku.utils.urldereferencer.URLDereferencerImpl;
import at.gv.egiz.bku.utils.urldereferencer.URLProtocolHandler;
import at.gv.egiz.dom.DOMUtils;
import at.gv.egiz.slbinding.RedirectEventFilter;
import at.gv.egiz.slbinding.RedirectUnmarshallerListener;
-import org.junit.Ignore;
-import org.w3c.dom.NodeList;
-import static org.junit.Assert.*;
public class SignatureTest {
@@ -135,6 +132,8 @@ public class SignatureTest {
private static X509Certificate certificate;
+ private static URLDereferencer urlDereferencer;
+
@BeforeClass
public static void setUpClass() throws JAXBException, NoSuchAlgorithmException, KeyStoreException, CertificateException, IOException, UnrecoverableKeyException {
@@ -161,14 +160,16 @@ public class SignatureTest {
certificate = (X509Certificate) keystore.getCertificate(firstAlias);
privateKey = (PrivateKey) keystore.getKey(firstAlias, passwd);
+ urlDereferencer = URLDereferencerImpl.getInstance();
+
}
private static void initURLDereferencer() {
- URLDereferencer.getInstance().registerHandler("testlocal", new URLProtocolHandler() {
+ URLDereferencerImpl.getInstance().registerHandler("testlocal", new URLProtocolHandler() {
@Override
- public StreamData dereference(String url, URLDereferencerContext context)
+ public StreamData dereference(String url)
throws IOException {
ClassLoader classLoader = SignatureTest.class.getClassLoader();
@@ -237,12 +238,11 @@ public class SignatureTest {
//
//
- @SuppressWarnings("unchecked")
private SignatureInfoCreationType unmarshalSignatureInfo(String file) throws JAXBException, XMLStreamException {
Object object = unmarshal(file);
- Object requestType = ((JAXBElement) object).getValue();
+ Object requestType = ((JAXBElement<?>) object).getValue();
assertTrue(requestType instanceof CreateXMLSignatureRequestType);
@@ -259,7 +259,7 @@ public class SignatureTest {
SignatureInfoCreationType signatureInfo = unmarshalSignatureInfo("SignatureInfo_Base64_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), null);
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), null);
signature.setSignatureInfo(signatureInfo);
@@ -281,7 +281,7 @@ public class SignatureTest {
SignatureInfoCreationType signatureInfo = unmarshalSignatureInfo("SignatureInfo_Base64_2.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), null);
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), null);
signature.setSignatureInfo(signatureInfo);
@@ -301,7 +301,7 @@ public class SignatureTest {
SignatureInfoCreationType signatureInfo = unmarshalSignatureInfo("SignatureInfo_Base64_3.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), null);
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), null);
signature.setSignatureInfo(signatureInfo);
@@ -321,7 +321,7 @@ public class SignatureTest {
SignatureInfoCreationType signatureInfo = unmarshalSignatureInfo("SignatureInfo_XMLContent_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), null);
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), null);
signature.setSignatureInfo(signatureInfo);
@@ -341,7 +341,7 @@ public class SignatureTest {
SignatureInfoCreationType signatureInfo = unmarshalSignatureInfo("SignatureInfo_Reference_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), null);
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), null);
signature.setSignatureInfo(signatureInfo);
@@ -362,12 +362,11 @@ public class SignatureTest {
//
//
- @SuppressWarnings("unchecked")
private List<DataObjectInfoType> unmarshalDataObjectInfo(String file) throws JAXBException, XMLStreamException {
Object object = unmarshal(file);
- Object requestType = ((JAXBElement) object).getValue();
+ Object requestType = ((JAXBElement<?>) object).getValue();
assertTrue(requestType instanceof CreateXMLSignatureRequestType);
@@ -397,19 +396,17 @@ public class SignatureTest {
output.setByteStream(System.out);
LSSerializer serializer = domImplLS.createLSSerializer();
-// serializer.getDomConfig().setParameter("format-pretty-print", Boolean.TRUE);
serializer.getDomConfig().setParameter("namespaces", Boolean.FALSE);
serializer.write(document, output);
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_Base64Content_1() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_Base64Content_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -427,10 +424,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 1);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.BASE64.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
@@ -443,16 +440,14 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
-
public void testDataObject_XMLContent_1() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
System.out.println("\n ****************** testDataObject_XMLContent_1 \n");
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_XMLContent_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -470,10 +465,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 2);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.XPATH2.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
@@ -486,7 +481,6 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_XMLContent_2() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
@@ -494,7 +488,7 @@ public class SignatureTest {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_XMLContent_2.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -512,10 +506,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 2);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.XPATH2.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
@@ -529,7 +523,6 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_LocRefContent_1() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
@@ -537,7 +530,7 @@ public class SignatureTest {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_LocRefContent_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -553,10 +546,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 2);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.XPATH2.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
@@ -569,7 +562,6 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_LocRefContent_2() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
@@ -577,7 +569,7 @@ public class SignatureTest {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_LocRefContent_2.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -593,10 +585,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 1);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.BASE64.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
@@ -609,7 +601,6 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_Reference_1() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
@@ -617,7 +608,7 @@ public class SignatureTest {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_Reference_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -633,10 +624,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 1);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.BASE64.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
@@ -649,7 +640,6 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_Detached_1() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
@@ -657,7 +647,7 @@ public class SignatureTest {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_Detached_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -673,7 +663,7 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 0);
List<XMLObject> objects = signature.getXMLObjects();
@@ -682,7 +672,6 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_Detached_Base64Content() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
@@ -690,7 +679,7 @@ public class SignatureTest {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_Detached_Base64Content.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -700,13 +689,13 @@ public class SignatureTest {
signAndMarshalSignature(signature);
- List<Reference> references = signature.getReferences();
+ List<?> references = signature.getReferences();
assertTrue(references.size() == 2);
- Reference reference = references.get(0);
+ Reference reference = (Reference) references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 0);
List<XMLObject> objects = signature.getXMLObjects();
@@ -715,7 +704,6 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testDataObject_Detached_LocRefContent() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
@@ -723,7 +711,7 @@ public class SignatureTest {
List<DataObjectInfoType> dataObjectInfos = unmarshalDataObjectInfo("DataObjectInfo_Detached_LocRefContent.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
for (DataObjectInfoType dataObjectInfo : dataObjectInfos) {
signature.addDataObject(dataObjectInfo);
@@ -739,7 +727,7 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue(transforms.size() == 0);
List<XMLObject> objects = signature.getXMLObjects();
@@ -754,12 +742,11 @@ public class SignatureTest {
//
//
- @SuppressWarnings("unchecked")
private CreateXMLSignatureRequestType unmarshalCreateXMLSignatureRequest(String file) throws JAXBException, XMLStreamException {
Object object = unmarshal(file);
- Object requestType = ((JAXBElement) object).getValue();
+ Object requestType = ((JAXBElement<?>) object).getValue();
assertTrue(requestType instanceof CreateXMLSignatureRequestType);
@@ -768,13 +755,12 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
public void testTransformsInfo_1() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
CreateXMLSignatureRequestType requestType = unmarshalCreateXMLSignatureRequest("TransformsInfo_1.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
signature.setSignatureInfo(requestType.getSignatureInfo());
@@ -797,10 +783,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue("Size " + transforms.size() + "", transforms.size() == 3);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.ENVELOPED.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
@@ -809,14 +795,12 @@ public class SignatureTest {
}
- @SuppressWarnings("unchecked")
@Test
- @Ignore
public void testTransformsInfo_2() throws JAXBException, SLCommandException, XMLStreamException, SLRequestException, MarshalException, XMLSignatureException, SLViewerException {
CreateXMLSignatureRequestType requestType = unmarshalCreateXMLSignatureRequest("TransformsInfo_2.xml");
- Signature signature = new Signature(null, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
+ Signature signature = new Signature(urlDereferencer, new IdValueFactoryImpl(), new AlgorithmMethodFactoryImpl());
signature.setSignatureInfo(requestType.getSignatureInfo());
@@ -839,10 +823,10 @@ public class SignatureTest {
Reference reference = references.get(0);
assertNotNull(reference.getId());
- List<Transform> transforms = reference.getTransforms();
+ List<?> transforms = reference.getTransforms();
assertTrue("Size " + transforms.size() + "", transforms.size() == 2);
- Transform transform = transforms.get(0);
+ Transform transform = (Transform) transforms.get(0);
assertTrue(Transform.XSLT.equals(transform.getAlgorithm()));
List<XMLObject> objects = signature.getXMLObjects();
diff --git a/bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummySTAL.java b/bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummySTAL.java
index 8adeadee..e4ffdb9d 100644
--- a/bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummySTAL.java
+++ b/bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummySTAL.java
@@ -27,10 +27,9 @@ import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
-import java.util.Locale;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import at.gv.egiz.stal.ErrorResponse;
import at.gv.egiz.stal.InfoboxReadRequest;
@@ -43,7 +42,7 @@ import at.gv.egiz.stal.SignResponse;
public class DummySTAL implements STAL {
- static Log log = LogFactory.getLog(DummySTAL.class);
+ private final Logger log = LoggerFactory.getLogger(DummySTAL.class);
protected X509Certificate cert = null;
protected PrivateKey privateKey = null;
@@ -66,7 +65,7 @@ public class DummySTAL implements STAL {
}
}
} catch (Exception e) {
- log.error(e);
+ log.error("Failed to create DummySTAL.", e);
}
}
@@ -113,7 +112,7 @@ public class DummySTAL implements STAL {
infoboxReadResponse.setInfoboxValue(cert.getEncoded());
response = infoboxReadResponse;
} catch (CertificateEncodingException e) {
- log.error(e);
+ log.error("Failed to encode certificate.", e);
response = new ErrorResponse();
}
} else {
@@ -136,7 +135,7 @@ public class DummySTAL implements STAL {
resp.setSignatureValue(sigVal);
responses.add(resp);
} catch (Exception e) {
- log.error(e);
+ log.error("Failed to create signature.", e);
responses.add(new ErrorResponse());
}
diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/binding/DummyStalFactory.java b/bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummyStalFactory.java
index f832f364..b8e3fff4 100644
--- a/bkucommon/src/test/java/at/gv/egiz/bku/binding/DummyStalFactory.java
+++ b/bkucommon/src/test/java/at/gv/egiz/stal/dummy/DummyStalFactory.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package at.gv.egiz.bku.binding;
+package at.gv.egiz.stal.dummy;
import java.util.Locale;
diff --git a/bkucommon/src/test/resources/at/gv/egiz/bku/binding/NOPMultipartDataUrl.txt b/bkucommon/src/test/resources/at/gv/egiz/bku/binding/NOPMultipartDataUrl.txt
index fb8cc1c3..5d401009 100644
--- a/bkucommon/src/test/resources/at/gv/egiz/bku/binding/NOPMultipartDataUrl.txt
+++ b/bkucommon/src/test/resources/at/gv/egiz/bku/binding/NOPMultipartDataUrl.txt
@@ -43,5 +43,5 @@ MyHeader:veryUgly
-----------------------------2330864292941
Content-Disposition: form-data; name="DataURL"
-http://localhost:8080/
+http://localhost:8081/
-----------------------------2330864292941--
diff --git a/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/impl/TransformsInfo_2.xml b/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/impl/TransformsInfo_2.xml
index f43dc61a..c45c91aa 100644
--- a/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/impl/TransformsInfo_2.xml
+++ b/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/impl/TransformsInfo_2.xml
@@ -267,7 +267,7 @@
</sl:FinalDataMetaInfo>
</sl:TransformsInfo>
<sl:TransformsInfo>
- <dsig:Transforms> <!-- xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"-->
+ <dsig:Transforms xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
<dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:pr="http://reference.e-government.gv.at/namespace/persondata/20020228#" exclude-result-prefixes="pr saml">
<xsl:output method="xml" xml:space="default"/>
diff --git a/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/testApplicationContext.xml b/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/testApplicationContext.xml
index a7b588aa..b20202ad 100644
--- a/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/testApplicationContext.xml
+++ b/bkucommon/src/test/resources/at/gv/egiz/bku/slcommands/testApplicationContext.xml
@@ -15,38 +15,134 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
-
- <bean id="slCommandFactory" class="at.gv.egiz.bku.slcommands.SLCommandFactory"
- factory-method="getInstance">
- <property name="commandImpl">
- <map>
- <entry
- key="http://www.buergerkarte.at/namespaces/securitylayer/1.2#:NullOperationRequest"
- value="at.gv.egiz.bku.slcommands.impl.NullOperationCommandImpl" />
- <entry
- key="http://www.buergerkarte.at/namespaces/securitylayer/1.2#:InfoboxReadRequest"
- value="at.gv.egiz.bku.slcommands.impl.InfoboxReadCommandImpl" />
- <entry
- key="http://www.buergerkarte.at/namespaces/securitylayer/1.2#:CreateXMLSignatureRequest"
- value="at.gv.egiz.bku.slcommands.impl.CreateXMLSignatureCommandImpl" />
- </map>
- </property>
- </bean>
-
- <bean id="infoboxFactory" class="at.gv.egiz.bku.slcommands.impl.InfoboxFactory"
+ <bean id="configuration" class="org.apache.commons.configuration.MapConfiguration">
+ <constructor-arg>
+ <map>
+ <entry key="ValidateHashDataInputs" value="false"/>
+ </map>
+ </constructor-arg>
+ </bean>
+
+ <!-- URL dereferencer -->
+ <bean id="urlDereferencer" class="at.gv.egiz.bku.utils.urldereferencer.URLDereferencerImpl"
+ factory-method="getInstance"/>
+
+ <!-- command invoker -->
+ <bean id="slCommandInvoker" class="at.gv.egiz.bku.binding.SLCommandInvokerImpl">
+ </bean>
+
+ <!-- Security Layer command factory -->
+
+ <bean id="abstractCommandFactory" class="at.gv.egiz.bku.slcommands.AbstractSLCommandFactory"
+ abstract="true">
+ <property name="configuration" ref="configuration"/>
+ </bean>
+
+ <bean id="certificatesInfoboxFactory"
+ class="at.gv.egiz.bku.slcommands.impl.CertificatesInfoboxFactory" />
+ <bean id="identityLinkInfoboxFactory"
+ class="at.gv.egiz.bku.slcommands.impl.IdentityLinkInfoboxFactory">
+ <property name="identityLinkTransformer">
+ <bean class="at.gv.egiz.idlink.IdentityLinkTransformer">
+ <property name="urlDereferencer" ref="urlDereferencer"/>
+ </bean>
+ </property>
+ </bean>
+ <bean id="cardChannelInfoboxFactory"
+ class="at.gv.egiz.bku.slcommands.impl.CardChannelInfoboxFactory" />
+ <bean id="svPersonendatenInfoboxFactory"
+ class="at.gv.egiz.bku.slcommands.impl.SVPersonendatenInfoboxFactory" />
+
+ <bean id="infoboxFactory" class="at.gv.egiz.bku.slcommands.impl.InfoboxFactory">
+ <property name="infoboxFactories">
+ <map>
+ <entry key="Certificates" value-ref="certificatesInfoboxFactory" />
+ <entry key="IdentityLink" value-ref="identityLinkInfoboxFactory" />
+ <entry key="CardChannel" value-ref="cardChannelInfoboxFactory" />
+ <entry key="SV-Personendaten" value-ref="svPersonendatenInfoboxFactory" />
+ </map>
+ </property>
+ </bean>
+
+ <bean id="nullOperationCommandFactory"
+ class="at.gv.egiz.bku.slcommands.impl.NullOperationCommandFactory"
+ parent="abstractCommandFactory" />
+ <bean id="nullOperationRequest" class="javax.xml.namespace.QName">
+ <constructor-arg
+ value="http://www.buergerkarte.at/namespaces/securitylayer/1.2#" />
+ <constructor-arg value="NullOperationRequest" />
+ </bean>
+ <bean id="infoboxReadCommandFactory"
+ class="at.gv.egiz.bku.slcommands.impl.InfoboxReadCommandFactory"
+ parent="abstractCommandFactory">
+ <property name="infoboxFactory" ref="infoboxFactory" />
+ </bean>
+ <bean id="infoboxReadRequest" class="javax.xml.namespace.QName">
+ <constructor-arg
+ value="http://www.buergerkarte.at/namespaces/securitylayer/1.2#" />
+ <constructor-arg value="InfoboxReadRequest" />
+ </bean>
+ <bean id="infoboxUpdateCommandFactory"
+ class="at.gv.egiz.bku.slcommands.impl.InfoboxUpdateCommandFactory"
+ parent="abstractCommandFactory">
+ <property name="infoboxFactory" ref="infoboxFactory" />
+ </bean>
+ <bean id="infoboxUpdateRequest" class="javax.xml.namespace.QName">
+ <constructor-arg
+ value="http://www.buergerkarte.at/namespaces/securitylayer/1.2#" />
+ <constructor-arg value="InfoboxUpdateRequest" />
+ </bean>
+ <bean id="createXMLSignatureCommandFactory"
+ class="at.gv.egiz.bku.slcommands.impl.CreateXMLSignatureCommandFactory"
+ parent="abstractCommandFactory" />
+ <bean id="createXMLSignatureRequest" class="javax.xml.namespace.QName">
+ <constructor-arg
+ value="http://www.buergerkarte.at/namespaces/securitylayer/1.2#" />
+ <constructor-arg value="CreateXMLSignatureRequest" />
+ </bean>
+ <bean id="getStatusCommandFactory" class="at.gv.egiz.bku.slcommands.impl.GetStatusCommandFactory"
+ parent="abstractCommandFactory" />
+ <bean id="getStatusRequest" class="javax.xml.namespace.QName">
+ <constructor-arg
+ value="http://www.buergerkarte.at/namespaces/securitylayer/1.2#" />
+ <constructor-arg value="GetStatusRequest" />
+ </bean>
+
+ <bean id="slCommandFactory" class="at.gv.egiz.bku.slcommands.SLCommandFactory"
factory-method="getInstance">
- <property name="infoboxImpl">
+ <property name="concreteFactories">
<map>
- <entry
- key="Certificates"
- value="at.gv.egiz.bku.slcommands.impl.CertificatesInfoboxImpl" />
- <entry
- key="IdentityLink"
- value="at.gv.egiz.bku.slcommands.impl.IdentityLinkInfoboxImpl" />
- <!--<entry
- key="CardChannel"
- value="at.gv.egiz.bku.slcommands.impl.CardChannel" />
- --></map>
+ <entry key-ref="nullOperationRequest" value-ref="nullOperationCommandFactory" />
+ <entry key-ref="infoboxReadRequest" value-ref="infoboxReadCommandFactory" />
+ <entry key-ref="infoboxUpdateRequest" value-ref="infoboxUpdateCommandFactory" />
+ <entry key-ref="createXMLSignatureRequest" value-ref="createXMLSignatureCommandFactory" />
+ <entry key-ref="getStatusRequest" value-ref="getStatusCommandFactory" />
+ </map>
+ </property>
+ </bean>
+
+ <!-- STAL factory -->
+ <bean id="stalFactory" class="at.gv.egiz.stal.dummy.DummyStalFactory"
+ scope="singleton">
+ </bean>
+
+ <!-- binding processor factories -->
+ <bean id="httpBindingProcessorFactory" class="at.gv.egiz.bku.binding.HTTPBindingProcessorFactory">
+ <property name="configuration" ref="configuration" />
+ <property name="slCommandFactory" ref="slCommandFactory" />
+ <property name="urlDereferencer" ref="urlDereferencer" />
+ </bean>
+
+ <!-- binding processor manager -->
+ <bean id="bindingProcessorManager" class="at.gv.egiz.bku.binding.BindingProcessorManagerImpl"
+ scope="singleton">
+ <property name="configuration" ref="configuration" />
+ <property name="stalFactory" ref="stalFactory" />
+ <property name="slCommandInvoker" ref="slCommandInvoker" />
+ <property name="factories">
+ <list>
+ <ref bean="httpBindingProcessorFactory"/>
+ </list>
</property>
</bean>
diff --git a/bkucommon/src/test/resources/commons-logging.properties b/bkucommon/src/test/resources/commons-logging.properties
deleted file mode 100644
index 29292562..00000000
--- a/bkucommon/src/test/resources/commons-logging.properties
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger