This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch SYNCOPE-1545 in repository https://gitbox.apache.org/repos/asf/syncope.git
commit dd5bed66764f72f1437e8f710fdf269435958300 Author: Francesco Chicchiriccò <ilgro...@apache.org> AuthorDate: Tue Mar 3 17:28:49 2020 +0100 [SYNCOPE-1545] fit/wa-reference + inclusion in standalone --- fit/pom.xml | 1 + fit/wa-reference/pom.xml | 181 +++++++++++++++++++++ .../main/resources/application-embedded.properties | 18 ++ fit/wa-reference/src/main/resources/log4j2.xml | 134 +++++++++++++++ fit/wa-reference/src/main/webapp/WEB-INF/web.xml | 29 ++++ standalone/pom.xml | 75 ++++++--- wa/src/main/resources/templates/layout.html | 61 +++++++ 7 files changed, 472 insertions(+), 27 deletions(-) diff --git a/fit/pom.xml b/fit/pom.xml index 5df60e1..30d9912 100644 --- a/fit/pom.xml +++ b/fit/pom.xml @@ -81,6 +81,7 @@ under the License. <module>core-reference</module> <module>console-reference</module> <module>enduser-reference</module> + <module>wa-reference</module> </modules> </project> diff --git a/fit/wa-reference/pom.xml b/fit/wa-reference/pom.xml new file mode 100644 index 0000000..7c08b20 --- /dev/null +++ b/fit/wa-reference/pom.xml @@ -0,0 +1,181 @@ +<?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. +--> +<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/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.syncope</groupId> + <artifactId>syncope-fit</artifactId> + <version>3.0.0-SNAPSHOT</version> + </parent> + + <name>Apache Syncope FIT WA Reference</name> + <description>Apache Syncope FIT WA Reference</description> + <groupId>org.apache.syncope.fit</groupId> + <artifactId>syncope-fit-wa-reference</artifactId> + <packaging>war</packaging> + + <properties> + <guava.version>28.2-jre</guava.version> + <opensaml.version>3.4.5</opensaml.version> + <bootstrap.version>4.4.1</bootstrap.version> + <slf4j.version>2.0.0-alpha1</slf4j.version> + + <ianal.skip>true</ianal.skip> + + <rootpom.basedir>${basedir}/../..</rootpom.basedir> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.syncope</groupId> + <artifactId>syncope-wa</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <inherited>true</inherited> + <configuration> + <container> + <containerId>tomcat9x</containerId> + <zipUrlInstaller> + <url>https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/${tomcat.version}/tomcat-${tomcat.version}.zip</url> + <downloadDir>${settings.localRepository}/org/codehaus/cargo/cargo-container-archives</downloadDir> + <extractDir>${project.build.directory}/cargo/extract</extractDir> + </zipUrlInstaller> + <timeout>300000</timeout> + <log>${cargo.log}</log> + <output>${cargo.output}</output> + </container> + <configuration> + <properties> + <cargo.jvmargs> + -Dspring.profiles.active=embedded + -XX:+CMSClassUnloadingEnabled -Xmx1024m -Xms512m</cargo.jvmargs> + </properties> + </configuration> + <deployables> + <deployable> + <location>${project.build.directory}/${project.build.finalName}</location> + <properties> + <context>syncope-wa</context> + </properties> + </deployable> + </deployables> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <configuration> + <resourceIncludes>src/main/resources/**/*.properties</resourceIncludes> + </configuration> + </plugin> + </plugins> + + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + </resources> + <testResources> + <testResource> + <directory>src/test/resources</directory> + <filtering>true</filtering> + </testResource> + </testResources> + </build> + + <profiles> + <profile> + <id>properties4cas</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + </profile> + + <profile> + <id>skipTests</id> + </profile> + + <profile> + <id>debug</id> + + <properties> + <skipTests>true</skipTests> + </properties> + + <build> + <defaultGoal>clean verify cargo:run</defaultGoal> + + <plugins> + <plugin> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <inherited>true</inherited> + <configuration> + <configuration> + <properties> + <cargo.jvmargs> + -Dspring.profiles.active=embedded + -Xdebug -Djaxb.debug=true -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n + -XX:+CMSClassUnloadingEnabled -XX:+UseG1GC -Xmx1024m -Xms512m</cargo.jvmargs> + </properties> + </configuration> + </configuration> + </plugin> + </plugins> + </build> + </profile> + + <profile> + <id>apache-release</id> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <inherited>false</inherited> + <configuration> + <skipSource>true</skipSource> + </configuration> + </plugin> + </plugins> + </build> + </profile> + + </profiles> +</project> diff --git a/fit/wa-reference/src/main/resources/application-embedded.properties b/fit/wa-reference/src/main/resources/application-embedded.properties new file mode 100644 index 0000000..464c8c8 --- /dev/null +++ b/fit/wa-reference/src/main/resources/application-embedded.properties @@ -0,0 +1,18 @@ +# 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. +spring.main.banner-mode=console +service.discovery.address=http://localhost:9080/syncope-wa/ diff --git a/fit/wa-reference/src/main/resources/log4j2.xml b/fit/wa-reference/src/main/resources/log4j2.xml new file mode 100644 index 0000000..08196df --- /dev/null +++ b/fit/wa-reference/src/main/resources/log4j2.xml @@ -0,0 +1,134 @@ +<?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. +--> +<!-- Specify the refresh internal in seconds. --> +<Configuration monitorInterval="5" packages="org.apereo.cas.logging"> + <Properties> + <Property name="baseDir">${log.directory}</Property> + <Property name="cas.log.level">info</Property> + <Property name="spring.webflow.log.level">warn</Property> + <Property name="spring.security.log.level">info</Property> + <Property name="spring.cloud.log.level">warn</Property> + <Property name="spring.web.log.level">warn</Property> + <Property name="spring.boot.log.level">warn</Property> + <Property name="ldap.log.level">warn</Property> + <Property name="pac4j.log.level">warn</Property> + <Property name="opensaml.log.level">warn</Property> + <Property name="hazelcast.log.level">warn</Property> + </Properties> + <Appenders> + <RollingFile name="file" fileName="${baseDir}/wa.log" append="true" + filePattern="${baseDir}/wa-%d{yyyy-MM-dd-HH}-%i.log"> + <PatternLayout pattern="%highlight{%d %p [%c] - <%m>%n}" /> + <Policies> + <OnStartupTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="10 MB"/> + <TimeBasedTriggeringPolicy /> + </Policies> + <DefaultRolloverStrategy max="5" compressionLevel="9"> + <Delete basePath="${baseDir}" maxDepth="2"> + <IfFileName glob="*/*.log.gz" /> + <IfLastModified age="7d" /> + </Delete> + </DefaultRolloverStrategy> + </RollingFile> + <RollingFile name="auditlogfile" fileName="${baseDir}/wa-audit.log" append="true" + filePattern="${baseDir}/wa-audit-%d{yyyy-MM-dd-HH}-%i.log"> + <PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" /> + <Policies> + <OnStartupTriggeringPolicy /> + <SizeBasedTriggeringPolicy size="10 MB"/> + <TimeBasedTriggeringPolicy /> + </Policies> + <DefaultRolloverStrategy max="5" compressionLevel="9"> + <Delete basePath="${baseDir}" maxDepth="2"> + <IfFileName glob="*/*.log.gz" /> + <IfLastModified age="7d" /> + </Delete> + </DefaultRolloverStrategy> + </RollingFile> + + <CasAppender name="casAudit"> + <AppenderRef ref="auditlogfile" /> + </CasAppender> + <CasAppender name="casFile"> + <AppenderRef ref="file" /> + </CasAppender> + </Appenders> + <Loggers> + <AsyncLogger name="org.apereo.cas" level="${sys:cas.log.level}" includeLocation="true" /> + <AsyncLogger name="org.apereo.cas.services" level="${sys:cas.log.level}" includeLocation="true" /> + <AsyncLogger name="org.apereo.spring" level="${sys:cas.log.level}" includeLocation="true" /> + <AsyncLogger name="org.apereo.services.persondir" level="${sys:cas.log.level}" includeLocation="true" /> + <AsyncLogger name="org.apereo.cas.web.flow" level="${sys:cas.log.level}" includeLocation="true" /> + <AsyncLogger name="org.apereo.cas.web.CasWebApplication" level="${sys:cas.log.level}" includeLocation="true"/> + + <AsyncLogger name="org.apereo.inspektr.audit.support" additivity="true" level="info" includeLocation="true"> + <AppenderRef ref="casAudit"/> + </AsyncLogger> + + <AsyncLogger name="org.springframework.boot" level="${sys:spring.boot.log.level}" /> + <AsyncLogger name="org.springframework.boot.context.embedded" level="info" /> + <AsyncLogger name="org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration" level="${sys:spring.security.log.level}" /> + <AsyncLogger name="org.springframework.boot.autoconfigure.security" level="${sys:spring.security.log.level}" /> + <AsyncLogger name="org.springframework.boot.devtools" level="debug" /> + + <AsyncLogger name="org.springframework" level="warn" includeLocation="true" /> + <AsyncLogger name="org.springframework.webflow" level="${sys:spring.webflow.log.level}" includeLocation="true"/> + <AsyncLogger name="org.springframework.aop" level="warn" includeLocation="true" /> + <AsyncLogger name="org.springframework.session" level="warn" includeLocation="true"/> + <AsyncLogger name="org.springframework.scheduling" level="info" includeLocation="true"/> + <AsyncLogger name="org.springframework.cloud.vault" level="warn" includeLocation="true" /> + <AsyncLogger name="org.springframework.web.client" level="warn" includeLocation="true" /> + <AsyncLogger name="org.springframework.security" level="${sys:spring.security.log.level}" includeLocation="true"/> + <AsyncLogger name="org.springframework.cloud" level="${sys:spring.cloud.log.level}" includeLocation="true"/> + <AsyncLogger name="org.springframework.amqp" level="error" /> + <AsyncLogger name="org.springframework.integration" level="warn" includeLocation="true"/> + <AsyncLogger name="org.springframework.messaging" level="warn" includeLocation="true"/> + <AsyncLogger name="org.springframework.web" level="${sys:spring.web.log.level}" includeLocation="true"/> + <AsyncLogger name="org.springframework.orm.jpa" level="warn" includeLocation="true"/> + <AsyncLogger name="org.springframework.scheduling" level="warn" includeLocation="true"/> + <AsyncLogger name="org.springframework.context.annotation" level="off" includeLocation="true"/> + <AsyncLogger name="org.springframework.web.socket" level="warn" includeLocation="true"/> + <AsyncLogger name="org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter" level="trace" includeLocation="true"/> + + <AsyncLogger name="com.couchbase" level="warn" includeLocation="true" /> + <AsyncLogger name="org.apache" level="error" includeLocation="true"/> + <AsyncLogger name="com.netflix" level="warn" includeLocation="true"/> + <AsyncLogger name="org.quartz" level="warn" includeLocation="true"/> + <AsyncLogger name="org.thymeleaf" level="warn" includeLocation="true"/> + <AsyncLogger name="org.pac4j" level="${sys:pac4j.log.level}" includeLocation="true"/> + + <AsyncLogger name="org.opensaml" level="${sys:opensaml.log.level}" includeLocation="true"/> + <AsyncLogger name="PROTOCOL_MESSAGE" level="${sys:opensaml.log.level}" includeLocation="true" /> + + <AsyncLogger name="net.sf.ehcache" level="warn" includeLocation="true"/> + <AsyncLogger name="net.jradius" level="warn" includeLocation="true"/> + <AsyncLogger name="org.openid4java" level="warn" includeLocation="true"/> + <AsyncLogger name="org.ldaptive" level="${sys:ldap.log.level}" includeLocation="true"/> + <AsyncLogger name="com.hazelcast" level="${sys:hazelcast.log.level}" includeLocation="true"/> + <AsyncLogger name="org.jasig.spring" level="warn" includeLocation="true"/> + <AsyncLogger name="org.apache.cxf" level="warn" includeLocation="true"/> + <AsyncLogger name="org.apache.http" level="warn" includeLocation="true"/> + + <AsyncRoot level="warn"> + <AppenderRef ref="casFile"/> + </AsyncRoot> + </Loggers> +</Configuration> diff --git a/fit/wa-reference/src/main/webapp/WEB-INF/web.xml b/fit/wa-reference/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..34b536e --- /dev/null +++ b/fit/wa-reference/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,29 @@ +<?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. +--> +<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_4_0.xsd" + version="4.0" + metadata-complete="true"> + + <display-name>Apache Syncope ${syncope.version} WA</display-name> + +</web-app> diff --git a/standalone/pom.xml b/standalone/pom.xml index 1fee6ac..45d71fd 100644 --- a/standalone/pom.xml +++ b/standalone/pom.xml @@ -73,6 +73,13 @@ under the License. <type>war</type> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.syncope.fit</groupId> + <artifactId>syncope-fit-wa-reference</artifactId> + <version>${project.version}</version> + <type>war</type> + <scope>test</scope> + </dependency> </dependencies> <build> @@ -116,68 +123,76 @@ under the License. <phase>verify</phase> <configuration> <target> - <mkdir dir="${work.dir}" /> + <mkdir dir="${work.dir}"/> <!-- legal stuff --> - <copy file="${project.build.outputDirectory}/README" todir="${work.dir}" /> - <copy file="LICENSE" todir="${work.dir}" /> - <copy file="NOTICE" todir="${work.dir}" /> + <copy file="${project.build.outputDirectory}/README" todir="${work.dir}"/> + <copy file="LICENSE" todir="${work.dir}"/> + <copy file="NOTICE" todir="${work.dir}"/> <!-- Unzip Tomcat and remove docs and examples from webapps (space saving) --> - <unzip src="${settings.localRepository}/org/codehaus/cargo/cargo-container-archives/tomcat-${tomcat.version}.zip" dest="${work.dir}" /> - <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/docs" /> - <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/examples" /> + <unzip src="${settings.localRepository}/org/codehaus/cargo/cargo-container-archives/tomcat-${tomcat.version}.zip" dest="${work.dir}"/> + <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/docs"/> + <delete dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/examples"/> <!-- Syncope core --> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope"> - <fileset dir="../fit/core-reference/target/syncope-fit-core-reference-${project.version}" includes="**/*" /> + <fileset dir="../fit/core-reference/target/syncope-fit-core-reference-${project.version}" includes="**/*"/> </copy> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/classes" overwrite="true"> - <fileset dir="${project.build.outputDirectory}/core" /> + <fileset dir="${project.build.outputDirectory}/core"/> </copy> - <copy file="../fit/core-reference/target/test-classes/keystore" todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/classes" overwrite="true" /> + <copy file="../fit/core-reference/target/test-classes/keystore" todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/classes" overwrite="true"/> <!-- Syncope console --> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-console"> - <fileset dir="../fit/console-reference/target/syncope-fit-console-reference-${project.version}" includes="**/*" /> + <fileset dir="../fit/console-reference/target/syncope-fit-console-reference-${project.version}" includes="**/*"/> </copy> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-console/WEB-INF/classes" overwrite="true"> - <fileset dir="${project.build.outputDirectory}/console" /> + <fileset dir="${project.build.outputDirectory}/console"/> </copy> <!-- Syncope enduser --> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-enduser"> - <fileset dir="../fit/enduser-reference/target/syncope-fit-enduser-reference-${project.version}" includes="**/*" /> + <fileset dir="../fit/enduser-reference/target/syncope-fit-enduser-reference-${project.version}" includes="**/*"/> </copy> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-enduser/WEB-INF/classes" overwrite="true"> - <fileset dir="${project.build.outputDirectory}/enduser" /> + <fileset dir="${project.build.outputDirectory}/enduser"/> + </copy>f + + <!-- Syncope wa --> + <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-wa"> + <fileset dir="../fit/wa-reference/target/syncope-fit-wa-reference-${project.version}" includes="**/*"/> + </copy> + <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-wa/WEB-INF/classes" overwrite="true"> + <fileset dir="${project.build.outputDirectory}/wa"/> </copy> - <mkdir dir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}" /> - <copy file="../fit/core-reference/src/test/resources/test.csv" todir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}" /> + <mkdir dir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}"/> + <copy file="../fit/core-reference/src/test/resources/test.csv" todir="${work.dir}/apache-tomcat-${tomcat.version}/${test.csvdir.path}"/> <!-- Syncope build tools (provide H2, Apache DS and REST / SOAP resources + ConnId connector server) --> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools"> - <fileset dir="../fit/build-tools/target/syncope-fit-build-tools-${project.version}" includes="**/*" /> + <fileset dir="../fit/build-tools/target/syncope-fit-build-tools-${project.version}" includes="**/*"/> </copy> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope-fit-build-tools/WEB-INF/lib"> - <fileset dir="../fit/core-reference/target/bundles/" includes="**/*" /> + <fileset dir="../fit/core-reference/target/bundles/" includes="**/*"/> </copy> <!-- Tomcat shared libraries: H2, StAX2 API, Woodstox --> - <copy file="${settings.localRepository}/com/h2database/h2/${h2.version}/h2-${h2.version}.jar" todir="${work.dir}/apache-tomcat-${tomcat.version}/lib" /> + <copy file="${settings.localRepository}/com/h2database/h2/${h2.version}/h2-${h2.version}.jar" todir="${work.dir}/apache-tomcat-${tomcat.version}/lib"/> <copy todir="${work.dir}/apache-tomcat-${tomcat.version}/lib"> - <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="stax2-api-*.jar" /> - <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="woodstox-core-asl-*.jar" /> + <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="stax2-api-*.jar"/> + <fileset dir="${work.dir}/apache-tomcat-${tomcat.version}/webapps/syncope/WEB-INF/lib" includes="woodstox-core-asl-*.jar"/> </copy> <!-- Other custom Tomcat resources --> - <copy file="${project.build.outputDirectory}/context.xml" todir="${work.dir}/apache-tomcat-${tomcat.version}/conf" overwrite="true" /> - <copy file="src/main/resources/setenv.sh" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin" /> - <copy file="src/main/resources/setenv.bat" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin" /> - <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8080" value="${cargo.servlet.port}" /> - <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8009" value="${cargo.tomcat.ajp.port}" /> - <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8005" value="${cargo.rmi.port}" /> + <copy file="${project.build.outputDirectory}/context.xml" todir="${work.dir}/apache-tomcat-${tomcat.version}/conf" overwrite="true"/> + <copy file="src/main/resources/setenv.sh" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/> + <copy file="src/main/resources/setenv.bat" todir="${work.dir}/apache-tomcat-${tomcat.version}/bin"/> + <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8080" value="${cargo.servlet.port}"/> + <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8009" value="${cargo.tomcat.ajp.port}"/> + <replace file="${work.dir}/apache-tomcat-${tomcat.version}/conf/server.xml" token="8005" value="${cargo.rmi.port}"/> </target> </configuration> </execution> @@ -276,6 +291,12 @@ under the License. </resource> <resource> + <directory>../fit/wa-reference/src/main/resources</directory> + <targetPath>wa</targetPath> + <filtering>true</filtering> + </resource> + + <resource> <directory>src/main/resources</directory> </resource> <resource> diff --git a/wa/src/main/resources/templates/layout.html b/wa/src/main/resources/templates/layout.html new file mode 100644 index 0000000..846f0d5 --- /dev/null +++ b/wa/src/main/resources/templates/layout.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> +<!-- +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. +--> +<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> + +<head> + <meta charset="UTF-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> + + <title layout:title-pattern="$CONTENT_TITLE - $LAYOUT_TITLE">Apache Syncope</title> + + <!--/* Core CAS CSS */--> + <link rel="stylesheet" type="text/css" href="../static/css/normalize.css" th:href="@{#{webjars.normalize.css}}" /> + <link rel="stylesheet" type="text/css" href="../static/css/bootstrap-grid.min.css" th:href="@{#{webjars.bootstrap-grid.css}}" /> + <link rel="stylesheet" type="text/css" href="../static/css/material-components-web.min.css" th:href="@{#{webjars.material-components.css}}" /> + <link rel="stylesheet" type="text/css" href="../static/css/mdi-font.css" th:href="@{#{webjars.mdi-font.css}}" /> + <link rel="stylesheet" type="text/css" href="../static/css/cas.css" th:href="@{${#themes.code('cas.standard.css.file')}}"/> + + <link rel="icon" th:href="@{/favicon.ico}" type="image/x-icon"/> +</head> + +<body> +<script th:replace="fragments/scripts" /> + +<div th:replace="fragments/header :: header"> + <a href="fragments/header.html">Header</a> fragment will go here +</div> + +<div class="mdc-drawer-scrim"></div> + +<div class="mdc-drawer-app-content mdc-top-app-bar--fixed-adjust d-flex justify-content-center"> + <main role="main" id="main-content" class="container-lg py-4"> + <div layout:fragment="content" id="content"> + CAS content will go here + </div> + </main> +</div> + +<div th:replace="fragments/footer :: footer"> + <a href="fragments/footer.html">Footer</a> fragment will go here +</div> + +</body> +</html>