Repository: cxf-fediz Updated Branches: refs/heads/master efe487068 -> da47191ff
[FEDIZ-130] - Added some initial Jetty 9 system tests. Project: http://git-wip-us.apache.org/repos/asf/cxf-fediz/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf-fediz/commit/da47191f Tree: http://git-wip-us.apache.org/repos/asf/cxf-fediz/tree/da47191f Diff: http://git-wip-us.apache.org/repos/asf/cxf-fediz/diff/da47191f Branch: refs/heads/master Commit: da47191ff9da4f1b94f5b84580634a731b748a79 Parents: efe4870 Author: Colm O hEigeartaigh <[email protected]> Authored: Fri Sep 18 17:22:05 2015 +0100 Committer: Colm O hEigeartaigh <[email protected]> Committed: Fri Sep 18 17:22:05 2015 +0100 ---------------------------------------------------------------------- systests/jetty9/pom.xml | 247 +++++++++ .../ClientCertificatePreAuthSpringTest.java | 98 ++++ .../integrationtests/ClientCertificateTest.java | 98 ++++ .../integrationtests/HOKCallbackHandler.java | 48 ++ .../JettyPreAuthSpringTest.java | 83 +++ .../cxf/fediz/integrationtests/JettyTest.java | 94 ++++ .../cxf/fediz/integrationtests/JettyUtils.java | 105 ++++ .../jetty9/src/test/resources/alice_client.jks | Bin 0 -> 2225 bytes systests/jetty9/src/test/resources/client.jks | Bin 0 -> 2061 bytes .../jetty9/src/test/resources/clienttrust.jks | Bin 0 -> 1512 bytes .../jetty9/src/test/resources/fediz_config.xml | 95 ++++ .../test/resources/fediz_config_client_cert.xml | 99 ++++ .../jetty9/src/test/resources/idp-server.xml | 112 ++++ .../test/resources/rp-client-cert-server.xml | 99 ++++ .../jetty9/src/test/resources/rp-server.xml | 125 +++++ systests/jetty9/src/test/resources/server.jks | Bin 0 -> 3717 bytes .../jetty9/src/test/resources/webdefault.xml | 507 +++++++++++++++++++ 17 files changed, 1810 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/pom.xml ---------------------------------------------------------------------- diff --git a/systests/jetty9/pom.xml b/systests/jetty9/pom.xml new file mode 100644 index 0000000..6f1506a --- /dev/null +++ b/systests/jetty9/pom.xml @@ -0,0 +1,247 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.cxf.fediz</groupId> + <artifactId>fediz-systests</artifactId> + <version>1.3.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <groupId>org.apache.cxf.fediz.systests</groupId> + <artifactId>fediz-systests-jetty9</artifactId> + <name>Apache Fediz Systests for Jetty 9</name> + <packaging>jar</packaging> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + </properties> + <dependencies> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + <version>${jetty9.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-security</artifactId> + <version>${jetty9.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-xml</artifactId> + <version>${jetty9.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-webapp</artifactId> + <version>${jetty9.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-annotations</artifactId> + <version>${jetty9.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>apache-jsp</artifactId> + <version>${jetty9.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.cxf.fediz</groupId> + <artifactId>fediz-jetty9</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.cxf.fediz.systests</groupId> + <artifactId>fediz-systests-tests</artifactId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-jdk14</artifactId> + <version>${slf4j.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>${hsqldb.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jdt.core.compiler</groupId> + <artifactId>ecj</artifactId> + <version>${ecj.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + <build> + <testResources> + <testResource> + <directory>src/test/resources</directory> + <filtering>true</filtering> + <includes> + <include>**/idp-server.xml</include> + <include>**/rp-*server.xml</include> + <include>**/fediz_config*.xml</include> + </includes> + </testResource> + <testResource> + <directory>src/test/resources</directory> + <filtering>false</filtering> + <excludes> + <exclude>**/idp-server.xml</exclude> + <exclude>**/rp-*server.xml</exclude> + <exclude>**/fediz_config*.xml</exclude> + </excludes> + </testResource> + </testResources> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <executions> + <execution> + <id>reserve-network-port</id> + <goals> + <goal>reserve-network-port</goal> + </goals> + <phase>initialize</phase> + <configuration> + <portNames> + <portName>idp.https.port</portName> + <portName>rp.https.port</portName> + </portNames> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>copy-idp-sts</id> + <phase>generate-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.apache.cxf.fediz</groupId> + <artifactId>fediz-idp</artifactId> + <version>${project.version}</version> + <type>war</type> + <overWrite>true</overWrite> + <outputDirectory>target/idp/</outputDirectory> + </artifactItem> + <artifactItem> + <groupId>org.apache.cxf.fediz</groupId> + <artifactId>fediz-idp-sts</artifactId> + <version>${project.version}</version> + <type>war</type> + <overWrite>true</overWrite> + <outputDirectory>target/idp/</outputDirectory> + </artifactItem> + <artifactItem> + <groupId>org.apache.cxf.fediz.systests.webapps</groupId> + <artifactId>fediz-systests-webapps-simple</artifactId> + <version>${project.version}</version> + <type>war</type> + <overWrite>true</overWrite> + <outputDirectory>target/rp/</outputDirectory> + </artifactItem> + <artifactItem> + <groupId>org.apache.cxf.fediz.systests.webapps</groupId> + <artifactId>fediz-systests-webapps-springPreauth</artifactId> + <version>${project.version}</version> + <type>war</type> + <overWrite>true</overWrite> + <outputDirectory>target/rp/</outputDirectory> + </artifactItem> + </artifactItems> + <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename> + <overWriteSnapshots>true</overWriteSnapshots> + <overWriteIfNewer>true</overWriteIfNewer> + <stripVersion>true</stripVersion> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-failsafe-plugin</artifactId> + <inherited>true</inherited> + <executions> + <execution> + <id>integration-test</id> + <phase>integration-test</phase> + <goals> + <goal>integration-test</goal> + </goals> + <configuration> + <skip>false</skip> + <systemPropertyVariables> + <wt.headless>true</wt.headless> + <idp.https.port>${idp.https.port}</idp.https.port> + <rp.https.port>${rp.https.port}</rp.https.port> + </systemPropertyVariables> + <includes> + <include>**/integrationtests/**</include> + </includes> + <argLine>-XX:MaxPermSize=512M</argLine> + </configuration> + </execution> + <execution> + <id>verify</id> + <phase>verify</phase> + <goals> + <goal>verify</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <inherited>true</inherited> + <configuration> + <excludes> + <exclude>**/integrationtests/**</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> +</project> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificatePreAuthSpringTest.java ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificatePreAuthSpringTest.java b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificatePreAuthSpringTest.java new file mode 100644 index 0000000..6d47264 --- /dev/null +++ b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificatePreAuthSpringTest.java @@ -0,0 +1,98 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.cxf.fediz.integrationtests; + +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.util.resource.Resource; +import org.eclipse.jetty.xml.XmlConfiguration; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; + +/** + * In this test-case, the IdP is set up to require client authentication, rather than authenticating using a + * username + password, or via Kerberos. + */ +public class ClientCertificatePreAuthSpringTest extends AbstractClientCertTests { + + static String idpHttpsPort; + static String rpHttpsPort; + + private static Server rpServer; + + @BeforeClass + public static void init() { + System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); + System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); + System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.webflow", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.security.web", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.security", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.cxf.fediz", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.cxf", "info"); + + idpHttpsPort = System.getProperty("idp.https.port"); + Assert.assertNotNull("Property 'idp.https.port' null", idpHttpsPort); + rpHttpsPort = System.getProperty("rp.https.port"); + Assert.assertNotNull("Property 'rp.https.port' null", rpHttpsPort); + + JettyUtils.initIdpServer(); + JettyUtils.startIdpServer(); + + try { + Resource testServerConfig = Resource.newSystemResource("rp-client-cert-server.xml"); + XmlConfiguration configuration = new XmlConfiguration(testServerConfig.getInputStream()); + rpServer = (Server)configuration.configure(); + rpServer.start(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @AfterClass + public static void cleanup() { + JettyUtils.stopIdpServer(); + + if (rpServer != null && rpServer.isStarted()) { + try { + rpServer.stop(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + @Override + public String getIdpHttpsPort() { + return idpHttpsPort; + } + + @Override + public String getRpHttpsPort() { + return rpHttpsPort; + } + + @Override + public String getServletContextName() { + return "fedizspringhelloworld"; + } + +} http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificateTest.java ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificateTest.java b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificateTest.java new file mode 100644 index 0000000..2955b52 --- /dev/null +++ b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/ClientCertificateTest.java @@ -0,0 +1,98 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.cxf.fediz.integrationtests; + +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.util.resource.Resource; +import org.eclipse.jetty.xml.XmlConfiguration; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; + +/** + * In this test-case, the IdP is set up to require client authentication, rather than authenticating using a + * username + password, or via Kerberos. + */ +public class ClientCertificateTest extends AbstractClientCertTests { + + static String idpHttpsPort; + static String rpHttpsPort; + + private static Server rpServer; + + @BeforeClass + public static void init() { + System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); + System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); + System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.webflow", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.security.web", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.security", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.cxf.fediz", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.cxf", "info"); + + idpHttpsPort = System.getProperty("idp.https.port"); + Assert.assertNotNull("Property 'idp.https.port' null", idpHttpsPort); + rpHttpsPort = System.getProperty("rp.https.port"); + Assert.assertNotNull("Property 'rp.https.port' null", rpHttpsPort); + + JettyUtils.initIdpServer(); + JettyUtils.startIdpServer(); + + try { + Resource testServerConfig = Resource.newSystemResource("rp-client-cert-server.xml"); + XmlConfiguration configuration = new XmlConfiguration(testServerConfig.getInputStream()); + rpServer = (Server)configuration.configure(); + rpServer.start(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @AfterClass + public static void cleanup() { + JettyUtils.stopIdpServer(); + + if (rpServer != null && rpServer.isStarted()) { + try { + rpServer.stop(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + @Override + public String getIdpHttpsPort() { + return idpHttpsPort; + } + + @Override + public String getRpHttpsPort() { + return rpHttpsPort; + } + + @Override + public String getServletContextName() { + return "fedizhelloworld"; + } + +} http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/HOKCallbackHandler.java ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/HOKCallbackHandler.java b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/HOKCallbackHandler.java new file mode 100644 index 0000000..e2f402c --- /dev/null +++ b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/HOKCallbackHandler.java @@ -0,0 +1,48 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.cxf.fediz.integrationtests; + +import java.io.IOException; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.UnsupportedCallbackException; + +import org.apache.cxf.fediz.core.spi.WReqCallback; + +public class HOKCallbackHandler implements CallbackHandler { + + static final String HOK_WREQ = + "<RequestSecurityToken xmlns=\"http://docs.oasis-open.org/ws-sx/ws-trust/200512\">" + + "<KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/PublicKey</KeyType>" + + "</RequestSecurityToken>"; + + public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { + for (int i = 0; i < callbacks.length; i++) { + if (callbacks[i] instanceof WReqCallback) { + WReqCallback callback = (WReqCallback) callbacks[i]; + callback.setWreq(HOK_WREQ); + } else { + throw new UnsupportedCallbackException(callbacks[i], "Unrecognized Callback"); + } + } + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyPreAuthSpringTest.java ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyPreAuthSpringTest.java b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyPreAuthSpringTest.java new file mode 100644 index 0000000..0d79b36 --- /dev/null +++ b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyPreAuthSpringTest.java @@ -0,0 +1,83 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.cxf.fediz.integrationtests; + + + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Ignore; + + +public class JettyPreAuthSpringTest extends AbstractTests { + + static String idpHttpsPort; + static String rpHttpsPort; + + @BeforeClass + public static void init() { + System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); + System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); + System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.webflow", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.security.web", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.cxf.fediz", "info"); + + idpHttpsPort = System.getProperty("idp.https.port"); + Assert.assertNotNull("Property 'idp.https.port' null", idpHttpsPort); + rpHttpsPort = System.getProperty("rp.https.port"); + Assert.assertNotNull("Property 'rp.https.port' null", rpHttpsPort); + + JettyUtils.initIdpServer(); + JettyUtils.startIdpServer(); + JettyUtils.initRpServer(); + JettyUtils.startRpServer(); + } + + @AfterClass + public static void cleanup() { + JettyUtils.stopIdpServer(); + JettyUtils.stopRpServer(); + } + + @Override + public String getIdpHttpsPort() { + return idpHttpsPort; + } + + @Override + public String getRpHttpsPort() { + return rpHttpsPort; + } + + @Override + public String getServletContextName() { + return "fedizspringhelloworld"; + } + + @Ignore("This tests is currently failing on Jetty") + @Override + public void testConcurrentRequests() throws Exception { + // super.testConcurrentRequests(); + } + +} http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyTest.java ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyTest.java b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyTest.java new file mode 100644 index 0000000..626ec90 --- /dev/null +++ b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyTest.java @@ -0,0 +1,94 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.cxf.fediz.integrationtests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + + +public class JettyTest {// extends AbstractTests { + + static String idpHttpsPort; + static String rpHttpsPort; + + @BeforeClass + public static void init() { + System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); + System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); + System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.webflow", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.security.web", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.springframework.security", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.cxf.fediz", "info"); + System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.cxf", "info"); + + idpHttpsPort = System.getProperty("idp.https.port"); + Assert.assertNotNull("Property 'idp.https.port' null", idpHttpsPort); + rpHttpsPort = System.getProperty("rp.https.port"); + Assert.assertNotNull("Property 'rp.https.port' null", rpHttpsPort); + + JettyUtils.initIdpServer(); + JettyUtils.startIdpServer(); + JettyUtils.initRpServer(); + JettyUtils.startRpServer(); + } + + @AfterClass + public static void cleanup() { + JettyUtils.stopIdpServer(); + JettyUtils.stopRpServer(); + } + + /* + @Override + public String getIdpHttpsPort() { + return idpHttpsPort; + } + + @Override + public String getRpHttpsPort() { + return rpHttpsPort; + } + + @Override + public String getServletContextName() { + return "fedizhelloworld"; + } + + @Ignore("This tests is currently failing on Jetty") + @Override + public void testConcurrentRequests() throws Exception { + // super.testConcurrentRequests(); + } + */ + + @Test + public void testTest() throws Exception { + //String url = + // "https://localhost:" + idpHttpsPort + "/fediz-idp-sts/REALMA/STSServiceTransport?wsdl"; + String url = "https://localhost:" + rpHttpsPort + "/fedizhelloworld/secure/fedservlet"; + System.out.println("URL: " + url); + + Thread.sleep(30 * 1000); + } +} http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyUtils.java ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyUtils.java b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyUtils.java new file mode 100644 index 0000000..8696870 --- /dev/null +++ b/systests/jetty9/src/test/java/org/apache/cxf/fediz/integrationtests/JettyUtils.java @@ -0,0 +1,105 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.cxf.fediz.integrationtests; + +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.util.resource.Resource; +import org.eclipse.jetty.xml.XmlConfiguration; + +public final class JettyUtils { + + private static Server idpServer; + private static Server rpServer; + + private JettyUtils() { + } + + public static void initIdpServer() { + if (idpServer == null) { + try { + Resource testServerConfig = Resource.newSystemResource("idp-server.xml"); + XmlConfiguration configuration = new XmlConfiguration(testServerConfig.getInputStream()); + idpServer = (Server)configuration.configure(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void startIdpServer() { + if (idpServer != null && !idpServer.isStarted()) { + try { + idpServer.start(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void stopIdpServer() { + if (idpServer != null && idpServer.isStarted()) { + try { + idpServer.stop(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void initRpServer() { + initRpServer("rp-server.xml"); + } + + public static void initRpServer(String configurationFile) { + if (rpServer == null) { + try { + Resource testServerConfig = Resource.newSystemResource(configurationFile); + XmlConfiguration configuration = new XmlConfiguration(testServerConfig.getInputStream()); + rpServer = (Server)configuration.configure(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void startRpServer() { + if (rpServer != null && !rpServer.isStarted()) { + try { + rpServer.start(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void stopRpServer() { + if (rpServer != null && rpServer.isStarted()) { + try { + rpServer.stop(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/alice_client.jks ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/alice_client.jks b/systests/jetty9/src/test/resources/alice_client.jks new file mode 100644 index 0000000..879df98 Binary files /dev/null and b/systests/jetty9/src/test/resources/alice_client.jks differ http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/client.jks ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/client.jks b/systests/jetty9/src/test/resources/client.jks new file mode 100644 index 0000000..62d221e Binary files /dev/null and b/systests/jetty9/src/test/resources/client.jks differ http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/clienttrust.jks ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/clienttrust.jks b/systests/jetty9/src/test/resources/clienttrust.jks new file mode 100644 index 0000000..c3ad459 Binary files /dev/null and b/systests/jetty9/src/test/resources/clienttrust.jks differ http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/fediz_config.xml ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/fediz_config.xml b/systests/jetty9/src/test/resources/fediz_config.xml new file mode 100644 index 0000000..e1ef26b --- /dev/null +++ b/systests/jetty9/src/test/resources/fediz_config.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<!-- Place in Tomcat conf folder or other location as designated in this sample's webapp/META-INF/context.xml file. + Keystore referenced below must have IDP STS' public cert included in it. This example re-uses the Tomcat SSL + keystore (tomcat-rp.jks) for this task; alternatively you may wish to use a Fediz-specific keystore instead. +--> +<FedizConfig> + <contextConfig name="/fedizhelloworld"> + <audienceUris> + <audienceItem>urn:org:apache:cxf:fediz:fedizhelloworld</audienceItem> + </audienceUris> + <certificateStores> + <trustManager> + <keyStore file="clienttrust.jks" password="storepass" + type="JKS" /> + </trustManager> + </certificateStores> + <trustedIssuers> + <issuer certificateValidation="PeerTrust" /> + </trustedIssuers> + <maximumClockSkew>1000</maximumClockSkew> + <signingKey keyAlias="mytomidpkey" keyPassword="tompass"> + <keyStore file="server.jks" password="tompass" type="JKS" /> + </signingKey> + <protocol xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:type="federationProtocolType" version="1.0.0"> + <realm>urn:org:apache:cxf:fediz:fedizhelloworld</realm> + <issuer>https://localhost:${idp.https.port}/fediz-idp/federation</issuer> + <roleDelimiter>,</roleDelimiter> + <roleURI>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role</roleURI> + <freshness>10</freshness> + <homeRealm type="String">urn:org:apache:cxf:fediz:idp:realm-A</homeRealm> + <claimTypesRequested> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role" optional="false" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="true" /> + </claimTypesRequested> + </protocol> + <logoutURL>/secure/logout</logoutURL> + <logoutRedirectTo>/index.html</logoutRedirectTo> + </contextConfig> + <contextConfig name="/fedizspringhelloworld"> + <audienceUris> + <audienceItem>urn:org:apache:cxf:fediz:fedizhelloworld</audienceItem> + </audienceUris> + <certificateStores> + <trustManager> + <keyStore file="clienttrust.jks" password="storepass" + type="JKS" /> + </trustManager> + </certificateStores> + <trustedIssuers> + <issuer certificateValidation="PeerTrust" /> + </trustedIssuers> + <maximumClockSkew>1000</maximumClockSkew> + <signingKey keyAlias="mytomidpkey" keyPassword="tompass"> + <keyStore file="server.jks" password="tompass" type="JKS" /> + </signingKey> + <protocol xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:type="federationProtocolType" version="1.0.0"> + <realm>urn:org:apache:cxf:fediz:fedizhelloworld</realm> + <issuer>https://localhost:${idp.https.port}/fediz-idp/federation</issuer> + <roleDelimiter>,</roleDelimiter> + <roleURI>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role</roleURI> + <homeRealm type="String">urn:org:apache:cxf:fediz:idp:realm-A</homeRealm> + <claimTypesRequested> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role" optional="false" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="true" /> + </claimTypesRequested> + </protocol> + <logoutURL>/secure/logout</logoutURL> + <logoutRedirectTo>/index.html</logoutRedirectTo> + </contextConfig> +</FedizConfig> + http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/fediz_config_client_cert.xml ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/fediz_config_client_cert.xml b/systests/jetty9/src/test/resources/fediz_config_client_cert.xml new file mode 100644 index 0000000..e8bd2d1 --- /dev/null +++ b/systests/jetty9/src/test/resources/fediz_config_client_cert.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<!-- Place in Tomcat conf folder or other location as designated in this sample's webapp/META-INF/context.xml file. + Keystore referenced below must have IDP STS' public cert included in it. This example re-uses the Tomcat SSL + keystore (tomcat-rp.jks) for this task; alternatively you may wish to use a Fediz-specific keystore instead. +--> +<FedizConfig> + <contextConfig name="/fedizhelloworld"> + <audienceUris> + <audienceItem>urn:org:apache:cxf:fediz:fedizhelloworld</audienceItem> + </audienceUris> + <certificateStores> + <trustManager> + <keyStore file="clienttrust.jks" password="storepass" type="JKS" /> + </trustManager> + </certificateStores> + <trustedIssuers> + <issuer certificateValidation="PeerTrust" /> + </trustedIssuers> + <maximumClockSkew>1000</maximumClockSkew> + <signingKey keyAlias="mytomidpkey" keyPassword="tompass"> + <keyStore file="test-classes/server.jks" password="tompass" type="JKS" /> + </signingKey> + <protocol xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:type="federationProtocolType" version="1.0.0"> + <realm>urn:org:apache:cxf:fediz:fedizhelloworld</realm> + <issuer>https://localhost:${idp.https.port}/fediz-idp/federation</issuer> + <roleDelimiter>,</roleDelimiter> + <roleURI>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role</roleURI> + <freshness>10</freshness> + <homeRealm type="String">urn:org:apache:cxf:fediz:idp:realm-A</homeRealm> + <claimTypesRequested> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role" optional="false" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="true" /> + </claimTypesRequested> + <authenticationType>http://docs.oasis-open.org/wsfed/authorization/200706/authntypes/Ssl</authenticationType> + <request type="Class">org.apache.cxf.fediz.integrationtests.HOKCallbackHandler</request> + </protocol> + <logoutURL>/secure/logout</logoutURL> + <logoutRedirectTo>/index.html</logoutRedirectTo> + </contextConfig> + <contextConfig name="/fedizspringhelloworld"> + <audienceUris> + <audienceItem>urn:org:apache:cxf:fediz:fedizhelloworld</audienceItem> + </audienceUris> + <certificateStores> + <trustManager> + <keyStore file="clienttrust.jks" password="storepass" type="JKS" /> + </trustManager> + </certificateStores> + <trustedIssuers> + <issuer certificateValidation="PeerTrust" /> + </trustedIssuers> + <maximumClockSkew>1000</maximumClockSkew> + <signingKey keyAlias="mytomidpkey" keyPassword="tompass"> + <keyStore file="test-classes/server.jks" password="tompass" type="JKS" /> + </signingKey> + <protocol xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:type="federationProtocolType" version="1.0.0"> + <realm>urn:org:apache:cxf:fediz:fedizhelloworld</realm> + <issuer>https://localhost:${idp.https.port}/fediz-idp/federation</issuer> + <roleDelimiter>,</roleDelimiter> + <roleURI>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role</roleURI> + <freshness>10</freshness> + <homeRealm type="String">urn:org:apache:cxf:fediz:idp:realm-A</homeRealm> + <claimTypesRequested> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role" optional="false" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" optional="true" /> + <claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="true" /> + </claimTypesRequested> + <authenticationType>http://docs.oasis-open.org/wsfed/authorization/200706/authntypes/Ssl</authenticationType> + <request type="Class">org.apache.cxf.fediz.integrationtests.HOKCallbackHandler</request> + </protocol> + <logoutURL>/secure/logout</logoutURL> + <logoutRedirectTo>/index.html</logoutRedirectTo> + </contextConfig> + +</FedizConfig> + http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/idp-server.xml ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/idp-server.xml b/systests/jetty9/src/test/resources/idp-server.xml new file mode 100644 index 0000000..011f006 --- /dev/null +++ b/systests/jetty9/src/test/resources/idp-server.xml @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> + +<Configure id="IdpServer" class="org.eclipse.jetty.server.Server"> + +<!-- + <Call class="java.lang.System" name="setProperty"> + <Arg>org.apache.jasper.compiler.disablejsr199</Arg> + <Arg>false</Arg> + </Call> +--> + + <Call class="org.eclipse.jetty.util.log.Log" name="getRootLogger"> + <Call name="setDebugEnabled"> + <Arg type="boolean">true</Arg> + </Call> + </Call> + + <New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> + <Set name="KeyStorePath">./target/test-classes/server.jks</Set> + <Set name="KeyStorePassword">tompass</Set> + <Set name="KeyManagerPassword">tompass</Set> + <Set name="TrustStorePath">./target/test-classes/server.jks</Set> + <Set name="TrustStorePassword">tompass</Set> + <Set name="WantClientAuth">true</Set> + </New> + + <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> + <Set name="secureScheme">https</Set> + <Set name="securePort"><Property name="jetty.ssl.port" default="${idp.https.port}" /></Set> + </New> + + <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> + <Arg><Ref refid="httpConfig"/></Arg> + <Call name="addCustomizer"> + <Arg> + <New class="org.eclipse.jetty.server.SecureRequestCustomizer"> + </New> + </Arg> + </Call> + </New> + + <Call id="sslConnector" name="addConnector"> + <Arg> + <New class="org.eclipse.jetty.server.ServerConnector"> + <Arg name="server"><Ref refid="IdpServer" /></Arg> + <Arg name="factories"> + <Array type="org.eclipse.jetty.server.ConnectionFactory"> + <Item> + <New class="org.eclipse.jetty.server.SslConnectionFactory"> + <Arg name="next">http/1.1</Arg> + <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg> + </New> + </Item> + <Item> + <New class="org.eclipse.jetty.server.HttpConnectionFactory"> + <Arg name="config"><Ref refid="sslHttpConfig"/></Arg> + </New> + </Item> + </Array> + </Arg> + <Set name="host">localhost</Set> + <Set name="port">${idp.https.port}</Set> + <Set name="idleTimeout">30000</Set> + </New> + </Arg> + </Call> + + <Set name="handler"> + <New class="org.eclipse.jetty.server.handler.HandlerList"> + <Set name="handlers"> + <Array type="org.eclipse.jetty.server.Handler"> + <Item> + <New class="org.eclipse.jetty.webapp.WebAppContext"> + <Set name="contextPath">/fediz-idp</Set> + <Set name="war">./target/idp/fediz-idp.war</Set> + <Set name="throwUnavailableOnStartupException">true</Set> + <Set name="defaultsDescriptor">src/test/resources/webdefault.xml</Set> + </New> + </Item> + <Item> + <New class="org.eclipse.jetty.webapp.WebAppContext"> + <Set name="contextPath">/fediz-idp-sts</Set> + <Set name="war">./target/idp/fediz-idp-sts.war</Set> + <Set name="throwUnavailableOnStartupException">true</Set> + <Set name="defaultsDescriptor">src/test/resources/webdefault.xml</Set> + </New> + </Item> + </Array> + </Set> + </New> + </Set> + +</Configure> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/rp-client-cert-server.xml ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/rp-client-cert-server.xml b/systests/jetty9/src/test/resources/rp-client-cert-server.xml new file mode 100644 index 0000000..5076f0a --- /dev/null +++ b/systests/jetty9/src/test/resources/rp-client-cert-server.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> + +<Configure id="RPServer" class="org.eclipse.jetty.server.Server"> + + <Call class="org.eclipse.jetty.util.log.Log" name="getRootLogger"> + <Call name="setDebugEnabled"> + <Arg type="boolean">true</Arg> + </Call> + </Call> + + <Call name="addConnector"> + <Arg> + <New + class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> + <Arg> + <New class="org.eclipse.jetty.http.ssl.SslContextFactory"> + <Set name="keyStore">./target/test-classes/server.jks + </Set> + <Set name="keyStorePassword">tompass</Set> + <Set name="keyManagerPassword">tompass</Set> + <Set name="trustStore">./target/test-classes/server.jks</Set> + <Set name="trustStorePassword">tompass</Set> + <Set name="wantClientAuth">true</Set> + </New> + </Arg> + <Set name="port">${rp.https.port}</Set> + <Set name="maxIdleTime">30000</Set> + </New> + </Arg> + </Call> + + <Set name="handler"> + <New class="org.eclipse.jetty.server.handler.HandlerList"> + <Set name="handlers"> + <Array type="org.eclipse.jetty.server.Handler"> + <Item> + <New class="org.eclipse.jetty.webapp.WebAppContext"> + <Set name="contextPath">/fedizhelloworld</Set> + <Set name="war">./target/rp/fediz-systests-webapps-simple.war</Set> + <!--Set name="war">./target/jetty/rp/webapps/simpleWebapp</Set>--> + <Set name="throwUnavailableOnStartupException">true</Set> + + <Get name="securityHandler"> + <Set name="authenticator"> + <New class="org.apache.cxf.fediz.jetty9.FederationAuthenticator"> + <Set name="configFile">./target/test-classes/fediz_config_client_cert.xml</Set> + </New> + </Set> + </Get> + </New> + </Item> + <Item> + <New class="org.eclipse.jetty.webapp.WebAppContext"> + <Set name="contextPath">/fedizspringhelloworld</Set> + <Set name="war">./target/rp/fediz-systests-webapps-springPreauth.war</Set> + <Set name="throwUnavailableOnStartupException">true</Set> + + <Get name="securityHandler"> + <Set name="authenticator"> + <New class="org.apache.cxf.fediz.jetty9.FederationAuthenticator"> + <Set name="configFile">./target/test-classes/fediz_config_client_cert.xml</Set> + </New> + </Set> + </Get> + </New> + </Item> + </Array> + </Set> + </New> + </Set> + + <Call name="addBean"> + <Arg> + <New class="org.apache.cxf.fediz.jetty9.FederationLoginService"> + <Set name="name">WSFED</Set> + </New> + </Arg> + </Call> + +</Configure> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/rp-server.xml ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/rp-server.xml b/systests/jetty9/src/test/resources/rp-server.xml new file mode 100644 index 0000000..b41f40c --- /dev/null +++ b/systests/jetty9/src/test/resources/rp-server.xml @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> + +<Configure id="RPServer" class="org.eclipse.jetty.server.Server"> + + <Call class="org.eclipse.jetty.util.log.Log" name="getRootLogger"> + <Call name="setDebugEnabled"> + <Arg type="boolean">true</Arg> + </Call> + </Call> + + <New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> + <Set name="KeyStorePath">./target/test-classes/server.jks</Set> + <Set name="KeyStorePassword">tompass</Set> + <Set name="KeyManagerPassword">tompass</Set> + </New> + + <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> + <Set name="secureScheme">https</Set> + <Set name="securePort"><Property name="jetty.ssl.port" default="${rp.https.port}" /></Set> + </New> + + <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> + <Arg><Ref refid="httpConfig"/></Arg> + <Call name="addCustomizer"> + <Arg> + <New class="org.eclipse.jetty.server.SecureRequestCustomizer"> + </New> + </Arg> + </Call> + </New> + + <Call id="sslConnector" name="addConnector"> + <Arg> + <New class="org.eclipse.jetty.server.ServerConnector"> + <Arg name="server"><Ref refid="RPServer" /></Arg> + <Arg name="factories"> + <Array type="org.eclipse.jetty.server.ConnectionFactory"> + <Item> + <New class="org.eclipse.jetty.server.SslConnectionFactory"> + <Arg name="next">http/1.1</Arg> + <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg> + </New> + </Item> + <Item> + <New class="org.eclipse.jetty.server.HttpConnectionFactory"> + <Arg name="config"><Ref refid="sslHttpConfig"/></Arg> + </New> + </Item> + </Array> + </Arg> + <Set name="host">localhost</Set> + <Set name="port">${rp.https.port}</Set> + <Set name="idleTimeout">30000</Set> + </New> + </Arg> + </Call> + + <Set name="handler"> + <New class="org.eclipse.jetty.server.handler.HandlerList"> + <Set name="handlers"> + <Array type="org.eclipse.jetty.server.Handler"> + <Item> + <New class="org.eclipse.jetty.webapp.WebAppContext"> + <Set name="contextPath">/fedizhelloworld</Set> + <Set name="war">./target/rp/fediz-systests-webapps-simple.war</Set> + <!--Set name="war">./target/jetty/rp/webapps/simpleWebapp</Set>--> + <Set name="throwUnavailableOnStartupException">true</Set> + + <Get name="securityHandler"> + <Set name="authenticator"> + <New class="org.apache.cxf.fediz.jetty9.FederationAuthenticator"> + <Set name="configFile">./target/test-classes/fediz_config.xml</Set> + </New> + </Set> + </Get> + </New> + </Item> + <Item> + <New class="org.eclipse.jetty.webapp.WebAppContext"> + <Set name="contextPath">/fedizspringhelloworld</Set> + <Set name="war">./target/rp/fediz-systests-webapps-springPreauth.war</Set> + <Set name="throwUnavailableOnStartupException">true</Set> + + <Get name="securityHandler"> + <Set name="authenticator"> + <New class="org.apache.cxf.fediz.jetty9.FederationAuthenticator"> + <Set name="configFile">./target/test-classes/fediz_config.xml</Set> + </New> + </Set> + </Get> + </New> + </Item> + </Array> + </Set> + </New> + </Set> + + <Call name="addBean"> + <Arg> + <New class="org.apache.cxf.fediz.jetty9.FederationLoginService"> + <Set name="name">WSFED</Set> + </New> + </Arg> + </Call> + +</Configure> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/server.jks ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/server.jks b/systests/jetty9/src/test/resources/server.jks new file mode 100644 index 0000000..c1efac3 Binary files /dev/null and b/systests/jetty9/src/test/resources/server.jks differ http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/da47191f/systests/jetty9/src/test/resources/webdefault.xml ---------------------------------------------------------------------- diff --git a/systests/jetty9/src/test/resources/webdefault.xml b/systests/jetty9/src/test/resources/webdefault.xml new file mode 100644 index 0000000..7b116a7 --- /dev/null +++ b/systests/jetty9/src/test/resources/webdefault.xml @@ -0,0 +1,507 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app + xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" + metadata-complete="false" + version="3.1"> + + <!-- ===================================================================== --> + <!-- This file contains the default descriptor for web applications. --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- The intent of this descriptor is to include jetty specific or common --> + <!-- configuration for all webapps. If a context has a webdefault.xml --> + <!-- descriptor, it is applied before the context's own web.xml file --> + <!-- --> + <!-- A context may be assigned a default descriptor by calling --> + <!-- WebAppContext.setDefaultsDescriptor(String). --> + <!-- --> + <!-- This file is present in the jetty-webapp.jar, and is used as the --> + <!-- defaults descriptor if no other is explicitly set on a context. --> + <!-- --> + <!-- A copy of this file is also placed into the $JETTY_HOME/etc dir of --> + <!-- the distribution, and is referenced by some of the other xml files, --> + <!-- eg the jetty-deploy.xml file. --> + <!-- ===================================================================== --> + + <description> + Default web.xml file. + This file is applied to a Web application before it's own WEB_INF/web.xml file + </description> + + <!-- ==================================================================== --> + <!-- Removes static references to beans from javax.el.BeanELResolver to --> + <!-- ensure webapp classloader can be released on undeploy --> + <!-- ==================================================================== --> + <listener> + <listener-class>org.eclipse.jetty.servlet.listener.ELContextCleaner</listener-class> + </listener> + + <!-- ==================================================================== --> + <!-- Removes static cache of Methods from java.beans.Introspector to --> + <!-- ensure webapp classloader can be released on undeploy --> + <!-- ==================================================================== --> + <listener> + <listener-class>org.eclipse.jetty.servlet.listener.IntrospectorCleaner</listener-class> + </listener> + + + <!-- ==================================================================== --> + <!-- Context params to control Session Cookies --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- + UNCOMMENT TO ACTIVATE + <context-param> + <param-name>org.eclipse.jetty.servlet.SessionDomain</param-name> + <param-value>127.0.0.1</param-value> + </context-param> + <context-param> + <param-name>org.eclipse.jetty.servlet.SessionPath</param-name> + <param-value>/</param-value> + </context-param> + <context-param> + <param-name>org.eclipse.jetty.servlet.MaxAge</param-name> + <param-value>-1</param-value> + </context-param> + --> + + <!-- ==================================================================== --> + <!-- The default servlet. --> + <!-- This servlet, normally mapped to /, provides the handling for static --> + <!-- content, OPTIONS and TRACE methods for the context. --> + <!-- The following initParameters are supported: --> + <!-- + * acceptRanges If true, range requests and responses are + * supported + * + * dirAllowed If true, directory listings are returned if no + * welcome file is found. Else 403 Forbidden. + * + * welcomeServlets If true, attempt to dispatch to welcome files + * that are servlets, but only after no matching static + * resources could be found. If false, then a welcome + * file must exist on disk. If "exact", then exact + * servlet matches are supported without an existing file. + * Default is true. + * + * This must be false if you want directory listings, + * but have index.jsp in your welcome file list. + * + * redirectWelcome If true, welcome files are redirected rather than + * forwarded to. + * + * gzip If set to true, then static content will be served as + * gzip content encoded if a matching resource is + * found ending with ".gz" + * + * resourceBase Set to replace the context resource base + * + * resourceCache If set, this is a context attribute name, which the servlet + * will use to look for a shared ResourceCache instance. + * + * relativeResourceBase + * Set with a pathname relative to the base of the + * servlet context root. Useful for only serving static content out + * of only specific subdirectories. + * + * pathInfoOnly If true, only the path info will be applied to the resourceBase + * + * stylesheet Set with the location of an optional stylesheet that will be used + * to decorate the directory listing html. + * + * aliases If True, aliases of resources are allowed (eg. symbolic + * links and caps variations). May bypass security constraints. + * + * etags If True, weak etags will be generated and handled. + * + * maxCacheSize The maximum total size of the cache or 0 for no cache. + * maxCachedFileSize The maximum size of a file to cache + * maxCachedFiles The maximum number of files to cache + * + * useFileMappedBuffer + * If set to true, it will use mapped file buffers to serve static content + * when using an NIO connector. Setting this value to false means that + * a direct buffer will be used instead of a mapped file buffer. + * This file sets the value to true. + * + * cacheControl If set, all static content will have this value set as the cache-control + * header. + * + --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <servlet> + <servlet-name>default</servlet-name> + <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class> + <init-param> + <param-name>aliases</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>acceptRanges</param-name> + <param-value>true</param-value> + </init-param> + <init-param> + <param-name>dirAllowed</param-name> + <param-value>true</param-value> + </init-param> + <init-param> + <param-name>welcomeServlets</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>redirectWelcome</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>maxCacheSize</param-name> + <param-value>256000000</param-value> + </init-param> + <init-param> + <param-name>maxCachedFileSize</param-name> + <param-value>200000000</param-value> + </init-param> + <init-param> + <param-name>maxCachedFiles</param-name> + <param-value>2048</param-value> + </init-param> + <init-param> + <param-name>gzip</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>etags</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>useFileMappedBuffer</param-name> + <param-value>true</param-value> + </init-param> + <!-- + <init-param> + <param-name>resourceCache</param-name> + <param-value>resourceCache</param-value> + </init-param> + --> + <!-- + <init-param> + <param-name>cacheControl</param-name> + <param-value>max-age=3600,public</param-value> + </init-param> + --> + <load-on-startup>0</load-on-startup> + </servlet> + + <servlet-mapping> + <servlet-name>default</servlet-name> + <url-pattern>/</url-pattern> + </servlet-mapping> + + + <!-- ==================================================================== --> + <!-- JSP Servlet --> + <!-- This is the jasper JSP servlet. --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- The JSP page compiler and execution servlet, which is the mechanism --> + <!-- used by the jsp container to support JSP pages. Traditionally, --> + <!-- this servlet is mapped to URL pattern "*.jsp". This servlet --> + <!-- supports the following initialization parameters (default values --> + <!-- are in square brackets): --> + <!-- --> + <!-- checkInterval If development is false and reloading is true, --> + <!-- background compiles are enabled. checkInterval --> + <!-- is the time in seconds between checks to see --> + <!-- if a JSP page needs to be recompiled. [300] --> + <!-- --> + <!-- compiler Which compiler Ant should use to compile JSP --> + <!-- pages. See the Ant documentation for more --> + <!-- information. [javac] --> + <!-- --> + <!-- classdebuginfo Should the class file be compiled with --> + <!-- debugging information? [true] --> + <!-- --> + <!-- classpath What class path should I use while compiling --> + <!-- generated servlets? [Created dynamically --> + <!-- based on the current web application] --> + <!-- Set to ? to make the container explicitly set --> + <!-- this parameter. --> + <!-- --> + <!-- development Is Jasper used in development mode (will check --> + <!-- for JSP modification on every access)? [true] --> + <!-- --> + <!-- enablePooling Determines whether tag handler pooling is --> + <!-- enabled [true] --> + <!-- --> + <!-- fork Tell Ant to fork compiles of JSP pages so that --> + <!-- a separate JVM is used for JSP page compiles --> + <!-- from the one Tomcat is running in. [true] --> + <!-- --> + <!-- ieClassId The class-id value to be sent to Internet --> + <!-- Explorer when using <jsp:plugin> tags. --> + <!-- [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93] --> + <!-- --> + <!-- javaEncoding Java file encoding to use for generating java --> + <!-- source files. [UTF-8] --> + <!-- --> + <!-- keepgenerated Should we keep the generated Java source code --> + <!-- for each page instead of deleting it? [true] --> + <!-- --> + <!-- logVerbosityLevel The level of detailed messages to be produced --> + <!-- by this servlet. Increasing levels cause the --> + <!-- generation of more messages. Valid values are --> + <!-- FATAL, ERROR, WARNING, INFORMATION, and DEBUG. --> + <!-- [WARNING] --> + <!-- --> + <!-- mappedfile Should we generate static content with one --> + <!-- print statement per input line, to ease --> + <!-- debugging? [false] --> + <!-- --> + <!-- --> + <!-- reloading Should Jasper check for modified JSPs? [true] --> + <!-- --> + <!-- suppressSmap Should the generation of SMAP info for JSR45 --> + <!-- debugging be suppressed? [false] --> + <!-- --> + <!-- dumpSmap Should the SMAP info for JSR45 debugging be --> + <!-- dumped to a file? [false] --> + <!-- False if suppressSmap is true --> + <!-- --> + <!-- scratchdir What scratch directory should we use when --> + <!-- compiling JSP pages? [default work directory --> + <!-- for the current web application] --> + <!-- --> + <!-- tagpoolMaxSize The maximum tag handler pool size [5] --> + <!-- --> + <!-- xpoweredBy Determines whether X-Powered-By response --> + <!-- header is added by generated servlet [false] --> + <!-- --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <servlet id="jsp"> + <servlet-name>jsp</servlet-name> + <servlet-class>org.eclipse.jetty.jsp.JettyJspServlet</servlet-class> + <init-param> + <param-name>logVerbosityLevel</param-name> + <param-value>DEBUG</param-value> + </init-param> + <init-param> + <param-name>fork</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>xpoweredBy</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <param-name>compilerTargetVM</param-name> + <param-value>1.7</param-value> + </init-param> + <init-param> + <param-name>compilerSourceVM</param-name> + <param-value>1.7</param-value> + </init-param> + <!-- + <init-param> + <param-name>classpath</param-name> + <param-value>?</param-value> + </init-param> + --> + <load-on-startup>0</load-on-startup> + </servlet> + + <servlet-mapping> + <servlet-name>jsp</servlet-name> + <url-pattern>*.jsp</url-pattern> + <url-pattern>*.jspf</url-pattern> + <url-pattern>*.jspx</url-pattern> + <url-pattern>*.xsp</url-pattern> + <url-pattern>*.JSP</url-pattern> + <url-pattern>*.JSPF</url-pattern> + <url-pattern>*.JSPX</url-pattern> + <url-pattern>*.XSP</url-pattern> + </servlet-mapping> + + + <!-- ==================================================================== --> + <!-- Default session configuration --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <session-config> + <session-timeout>30</session-timeout> + </session-config> + + <!-- ==================================================================== --> + <!-- Default MIME mappings --> + <!-- The default MIME mappings are provided by the mime.properties --> + <!-- resource in the jetty-http.jar file. Additional or modified --> + <!-- mappings may be specified here --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <!-- UNCOMMENT TO ACTIVATE + <mime-mapping> + <extension>mysuffix</extension> + <mime-type>mymime/type</mime-type> + </mime-mapping> + --> + + <!-- ==================================================================== --> + <!-- Default locale encodings --> + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <locale-encoding-mapping-list> + <locale-encoding-mapping> + <locale>ar</locale> + <encoding>ISO-8859-6</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>be</locale> + <encoding>ISO-8859-5</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>bg</locale> + <encoding>ISO-8859-5</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>ca</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>cs</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>da</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>de</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>el</locale> + <encoding>ISO-8859-7</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>en</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>es</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>et</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>fi</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>fr</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>hr</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>hu</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>is</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>it</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>iw</locale> + <encoding>ISO-8859-8</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>ja</locale> + <encoding>Shift_JIS</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>ko</locale> + <encoding>EUC-KR</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>lt</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>lv</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>mk</locale> + <encoding>ISO-8859-5</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>nl</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>no</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>pl</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>pt</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>ro</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>ru</locale> + <encoding>ISO-8859-5</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>sh</locale> + <encoding>ISO-8859-5</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>sk</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>sl</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>sq</locale> + <encoding>ISO-8859-2</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>sr</locale> + <encoding>ISO-8859-5</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>sv</locale> + <encoding>ISO-8859-1</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>tr</locale> + <encoding>ISO-8859-9</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>uk</locale> + <encoding>ISO-8859-5</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>zh</locale> + <encoding>GB2312</encoding> + </locale-encoding-mapping> + <locale-encoding-mapping> + <locale>zh_TW</locale> + <encoding>Big5</encoding> + </locale-encoding-mapping> + </locale-encoding-mapping-list> + + +</web-app> +
