diff options
author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2022-08-17 10:51:54 +0000 |
---|---|---|
committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2022-08-17 10:51:54 +0000 |
commit | d83cf36c1454a10f5a46d677b5f0f30e0cbe7e95 (patch) | |
tree | 1cf2bf2853d604d8579cc3f5bf411d10f80c0207 /basicConfig | |
parent | 48f19dc45cec670fe62399d09fb34732fb4eeedc (diff) | |
parent | 920d33465e5ab1a71d81cc280e41de10cd8b5247 (diff) | |
download | National_eIDAS_Gateway-d83cf36c1454a10f5a46d677b5f0f30e0cbe7e95.tar.gz National_eIDAS_Gateway-d83cf36c1454a10f5a46d677b5f0f30e0cbe7e95.tar.bz2 National_eIDAS_Gateway-d83cf36c1454a10f5a46d677b5f0f30e0cbe7e95.zip |
Merge branch 'feature/ms_proxy_service' into 'nightlybuild'
add basic implementation of eIDAS-Node Proxy-Service request-controller
See merge request egiz/eidas_at_proxy!20
Diffstat (limited to 'basicConfig')
35 files changed, 849 insertions, 96 deletions
diff --git a/basicConfig/eIDAS/additional-attributes.xml b/basicConfig/eIDAS/additional-attributes.xml index 6510546e..823f8db0 100644 --- a/basicConfig/eIDAS/additional-attributes.xml +++ b/basicConfig/eIDAS/additional-attributes.xml @@ -16,10 +16,10 @@ <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> - <comment>Dynamic attributes</comment> + <comment>Justice and Consumers Financial Stability, Financial Services and Capital Markets Union Sector Specific Attributes</comment> - <entry key="1.NameUri">http://eidas.europa.eu/attributes/naturalperson/AdditionalAttribute</entry> - <entry key="1.FriendlyName">AdditionalAttribute</entry> + <entry key="1.NameUri">http://e-justice.europa.eu/attributes/naturalperson/eJusticeNaturalPersonRole</entry> + <entry key="1.FriendlyName">eJusticeNaturalPersonRole</entry> <entry key="1.PersonType">NaturalPerson</entry> <entry key="1.Required">false</entry> <entry key="1.XmlType.NamespaceUri">http://www.w3.org/2001/XMLSchema</entry> @@ -27,13 +27,13 @@ <entry key="1.XmlType.NamespacePrefix">xs</entry> <entry key="1.AttributeValueMarshaller">eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller</entry> - <entry key="2.NameUri">http://eidas.europa.eu/attributes/legalperson/LegalAdditionalAttribute</entry> - <entry key="2.FriendlyName">LegalAdditionalAttribute</entry> + <entry key="2.NameUri">http://e-justice.europa.eu/attributes/legalperson/eJusticeLegalPersonRole</entry> + <entry key="2.FriendlyName">eJusticeLegalPersonRole</entry> <entry key="2.PersonType">LegalPerson</entry> <entry key="2.Required">false</entry> <entry key="2.XmlType.NamespaceUri">http://www.w3.org/2001/XMLSchema</entry> <entry key="2.XmlType.LocalPart">string</entry> <entry key="2.XmlType.NamespacePrefix">xs</entry> <entry key="2.AttributeValueMarshaller">eu.eidas.auth.commons.attribute.impl.LiteralStringAttributeValueMarshaller</entry> - + </properties> diff --git a/basicConfig/log4j.properties b/basicConfig/log4j.properties deleted file mode 100644 index 4426ea7e..00000000 --- a/basicConfig/log4j.properties +++ /dev/null @@ -1,54 +0,0 @@ -# commons-logging setup -org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory - -# define log4j root loggers -log4j.rootLogger=warn,stdout, console - -log4j.logger.at.gv.egiz.eidas.specific=info, msnode -log4j.logger.at.gv.egiz.eidas.specific.connector.logger.RevisionLogger=info, reversion -log4j.logger.at.gv.egiz.eidas.specific.connector.logger.StatisticLogger=info, statistic -log4j.logger.eu.eidas=info, EIDASNODE - -log4j.additivity.at.gv.egiz.eidas.specific=false -log4j.additivity.at.gv.egiz.eidas.specific.connector.logger.RevisionLogger=false -log4j.additivity.at.gv.egiz.eidas.specific.connector.logger.StatisticLogger=false -log4j.additivity.eu.eidas=false - -log4j.appender.console=org.apache.log4j.ConsoleAppender -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern=%5p | %d{dd HH:mm:ss,SSS} | %20c | %10t | %m%n - -log4j.appender.stdout=org.apache.log4j.RollingFileAppender -log4j.appender.stdout.File=${catalina.base}/logs/console.log -log4j.appender.stdout.MaxFileSize=10000KB -log4j.appender.stdout.MaxBackupIndex=9999 -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%5p | %d{dd HH:mm:ss,SSS} | %t | %m%n - -log4j.appender.msnode=org.apache.log4j.RollingFileAppender -log4j.appender.msnode.File=${catalina.base}/logs/eidas-ms-reversion.log -log4j.appender.msnode.MaxFileSize=10000KB -log4j.appender.msnode.MaxBackupIndex=9999 -log4j.appender.msnode.layout=org.apache.log4j.PatternLayout -log4j.appender.msnode.layout.ConversionPattern=%5p | %d{dd HH:mm:ss,SSS} | %t | %m%n - -log4j.appender.reversion=org.apache.log4j.RollingFileAppender -log4j.appender.reversion.File=${catalina.base}/logs/eidas-ms-reversion.log -log4j.appender.reversion.MaxFileSize=10000KB -log4j.appender.reversion.MaxBackupIndex=9999 -log4j.appender.reversion.layout=org.apache.log4j.PatternLayout -log4j.appender.reversion.layout.ConversionPattern=%5p | %d{dd HH:mm:ss,SSS} | %t | %m%n - -log4j.appender.statistic=org.apache.log4j.RollingFileAppender -log4j.appender.statistic.File=${catalina.base}/logs/eidas-ms-statistic.log -log4j.appender.statistic.MaxFileSize=10000KB -log4j.appender.statistic.MaxBackupIndex=9999 -log4j.appender.statistic.layout=org.apache.log4j.PatternLayout -log4j.appender.statistic.layout.ConversionPattern=%m%n - -log4j.appender.EIDASNODE=org.apache.log4j.RollingFileAppender -log4j.appender.EIDASNODE.File=${catalina.base}/logs/eIDAS_node.log -log4j.appender.EIDASNODE.MaxFileSize=10000KB -log4j.appender.EIDASNODE.MaxBackupIndex=9999 -log4j.appender.EIDASNODE.layout=org.apache.log4j.PatternLayout -log4j.appender.EIDASNODE.layout.ConversionPattern=%5p | %d{dd HH:mm:ss,SSS} | %t | %m%n
\ No newline at end of file diff --git a/basicConfig/default_config.properties b/basicConfig/ms-connector/default_config.properties index e1aff309..e1aff309 100644 --- a/basicConfig/default_config.properties +++ b/basicConfig/ms-connector/default_config.properties diff --git a/basicConfig/logback_config.xml b/basicConfig/ms-connector/logback_config.xml index 192f599f..a6a2738f 100644 --- a/basicConfig/logback_config.xml +++ b/basicConfig/ms-connector/logback_config.xml @@ -8,20 +8,20 @@ <!-- http://www.qos.ch/shop/products/professionalSupport --> <!-- --> <configuration> - <appender name="EIDASNODE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <appender name="MSEIDAS" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> - <File>${catalina.base}/logs/eIDAS_node.log</File> + <File>${catalina.base}/logs/ms_specific_node.log.log</File> <encoder> - <pattern>%5p | %d{dd HH:mm:ss,SSS} | %t | %m%n</pattern> + <pattern>%5p | %d{ISO8601} | %X{transactionId} | %t | %logger{16} | %m%n</pattern> </encoder> - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <maxIndex>9999</maxIndex> - <FileNamePattern>${catalina.base}/logs/eIDAS_node.log.%i</FileNamePattern> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${catalina.base}/logs/ms_specific_node.log.%d{yyyy-MM-dd}</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10000KB</MaxFileSize> </triggeringPolicy> </appender> + <appender name="msnode" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> <File>${catalina.base}/logs/eidas-ms-reversion.log</File> @@ -36,20 +36,7 @@ <MaxFileSize>10000KB</MaxFileSize> </triggeringPolicy> </appender> - <appender name="reversion" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> - <File>${catalina.base}/logs/eidas-ms-reversion.log</File> - <encoder> - <pattern>%5p | %d{dd HH:mm:ss,SSS} | %X{transactionId} | %t | %m%n</pattern> - </encoder> - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <maxIndex>9999</maxIndex> - <FileNamePattern>${catalina.base}/logs/eidas-ms-reversion.log.%i</FileNamePattern> - </rollingPolicy> - <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <MaxFileSize>10000KB</MaxFileSize> - </triggeringPolicy> - </appender> + <appender name="statistic" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> <File>${catalina.base}/logs/eidas-ms-statistic.log</File> @@ -64,39 +51,44 @@ <MaxFileSize>10000KB</MaxFileSize> </triggeringPolicy> </appender> + <appender name="stdout" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> <File>${catalina.base}/logs/console.log</File> <encoder> <pattern>%5p | %d{dd HH:mm:ss,SSS} | %X{transactionId} | %t | %m%n</pattern> </encoder> - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <maxIndex>9999</maxIndex> - <FileNamePattern>${catalina.base}/logs/console.log.%i</FileNamePattern> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${catalina.base}/logs/console.log.%d{yyyy-MM-dd}</fileNamePattern> </rollingPolicy> - <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <MaxFileSize>10000KB</MaxFileSize> - </triggeringPolicy> </appender> + <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%5p | %d{dd HH:mm:ss,SSS} | %X{transactionId} | %20c | %10t | %m%n</pattern> </encoder> </appender> - <logger name="eu.eidas" additivity="false" level="info"> - <appender-ref ref="EIDASNODE"/> + + <logger name="at.asitplus.eidas.specific.core.logger.StatisticLogger" additivity="false" level="info"> + <appender-ref ref="statistic"/> </logger> - <logger name="at.gv.egiz.eidas.specific" additivity="false" level="info"> - <appender-ref ref="msnode"/> + <logger name="at.asitplus.eidas.specific.core.logger.RevisionLogger" level="info"> + <appender-ref ref="reversion"/> </logger> - <logger name="at.asitplus.eidas.specific.core.logger.RevisionLogger" additivity="false" level="info"> + <logger name="at.gv.egiz.eventlog.simple.all" additivity="false" level="info"> <appender-ref ref="reversion"/> </logger> - <logger name="at.asitplus.eidas.specific.core.logger.StatisticLogger" additivity="false" level="info"> - <appender-ref ref="statistic"/> + <logger name="at.gv.egiz.eventlog.csv.all" additivity="false" level="off" /> + <logger name="at.gv.egiz.eventlog.plain.all" additivity="false" level="off" /> + + <logger name="at.asitplus.eidas.specific" additivity="false" level="info"> + <appender-ref ref="MSEIDAS"/> </logger> - <root level="warn"> - <appender-ref ref="stdout"/> + <logger name="at.gv.egiz.eaaf" additivity="false" level="info"> + <appender-ref ref="MSEIDAS"/> + </logger> + + <root level="info"> <appender-ref ref="console"/> </root> </configuration> diff --git a/basicConfig/properties/messages.properties b/basicConfig/ms-connector/properties/messages.properties index bac206f0..bac206f0 100644 --- a/basicConfig/properties/messages.properties +++ b/basicConfig/ms-connector/properties/messages.properties diff --git a/basicConfig/properties/messages_de.properties b/basicConfig/ms-connector/properties/messages_de.properties index 1686e388..1686e388 100644 --- a/basicConfig/properties/messages_de.properties +++ b/basicConfig/ms-connector/properties/messages_de.properties diff --git a/basicConfig/templates/countrySelection.html b/basicConfig/ms-connector/templates/countrySelection.html index 275d20f6..275d20f6 100644 --- a/basicConfig/templates/countrySelection.html +++ b/basicConfig/ms-connector/templates/countrySelection.html diff --git a/basicConfig/templates/countrySelection_example.html b/basicConfig/ms-connector/templates/countrySelection_example.html index 39d96225..39d96225 100644 --- a/basicConfig/templates/countrySelection_example.html +++ b/basicConfig/ms-connector/templates/countrySelection_example.html diff --git a/basicConfig/templates/eidas_node_forward.html b/basicConfig/ms-connector/templates/eidas_node_forward.html index 4486d146..4486d146 100644 --- a/basicConfig/templates/eidas_node_forward.html +++ b/basicConfig/ms-connector/templates/eidas_node_forward.html diff --git a/basicConfig/ms-connector/templates/error.html b/basicConfig/ms-connector/templates/error.html new file mode 100644 index 00000000..0d8d2d4e --- /dev/null +++ b/basicConfig/ms-connector/templates/error.html @@ -0,0 +1,60 @@ +<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorator="fragments/base"
+ th:with="lang=${#locale.language}" th:lang="${lang}">
+
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <link rel="stylesheet" href="/static/common.css"/>
+
+ <title th:text="#{gui.errorpage.msg.title}">An error arise ... </title>
+</head>
+
+<body>
+ <div class="header container">
+ <div class="titlebar">
+ <div>
+ <a href="https://www.bmi.gv.at/" target="_blank" title="Home">
+ <img class="toplogo img-responsive" src="/static/BMI.png" alt="Logo BMI"
+ th:attr="alt=#{gui.countryselection.logo.bmi.alt}">
+ <h1 class="hidden" th:text="#{gui.countryselection.header1}"> Bundesministerium für Inneres </h1>
+ </a>
+ </div>
+ <ul class="nav_oben">
+
+ <li><a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.link.bmi}" > Startseite BMI </a></li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="content">
+ <div id="page1" class="case selected-case" role="main">
+ <div class="hell" role="application" >
+ <h2 class="OA_header" role="heading" th:text="#{gui.errorpage.msg.title}">Error Header</h2>
+
+ <div id="alert_area" class="hell" role="application" >
+ <p th:text="#{gui.errorpage.msg.information}">Error Information</p>
+ <br/>
+ <!-- internal errorCodes -->
+ <!--p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${errorCode}"></span></p-->
+
+ <!-- grouped external errorCodes -->
+ <p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${extErrorCode}"></span></p>
+
+ <p><b th:text="#{gui.errorpage.msg.errormsg}">Msg:</b> <span th:text="${#messages.msgWithParams('__${errorCode}__', '__${errorParams}__')}"></span></p>
+ </div>
+ </div>
+
+ <div th:if="${stacktrace}">
+ <p><b th:text="#{gui.errorpage.msg.stacktrace}">fullError</b> <span th:text="${stacktrace}"></span></p>
+ </div>
+
+ </div>
+ </div>
+ <footer>
+ <div class="copyright">© BUNDESMINISTERIUM FÜR INNERES</div>
+ <div></div>
+ </footer>
+
+</body>
+</html> diff --git a/basicConfig/templates/error_message.html b/basicConfig/ms-connector/templates/error_message.html index 9ecd9f7e..0d8d2d4e 100644 --- a/basicConfig/templates/error_message.html +++ b/basicConfig/ms-connector/templates/error_message.html @@ -57,4 +57,4 @@ </footer>
</body>
-</html>
+</html> diff --git a/basicConfig/templates/language_selection.html b/basicConfig/ms-connector/templates/language_selection.html index 8d34c73b..8d34c73b 100644 --- a/basicConfig/templates/language_selection.html +++ b/basicConfig/ms-connector/templates/language_selection.html diff --git a/basicConfig/templates/other_login_method.html b/basicConfig/ms-connector/templates/other_login_method.html index 30bae604..30bae604 100644 --- a/basicConfig/templates/other_login_method.html +++ b/basicConfig/ms-connector/templates/other_login_method.html diff --git a/basicConfig/templates/pvp2_post_binding.html b/basicConfig/ms-connector/templates/pvp2_post_binding.html index 8f72da13..8f72da13 100644 --- a/basicConfig/templates/pvp2_post_binding.html +++ b/basicConfig/ms-connector/templates/pvp2_post_binding.html diff --git a/basicConfig/templates/residency.html b/basicConfig/ms-connector/templates/residency.html index de77269f..de77269f 100644 --- a/basicConfig/templates/residency.html +++ b/basicConfig/ms-connector/templates/residency.html diff --git a/basicConfig/webcontent/autocommit.js b/basicConfig/ms-connector/webcontent/autocommit.js index d21a5651..d21a5651 100644 --- a/basicConfig/webcontent/autocommit.js +++ b/basicConfig/ms-connector/webcontent/autocommit.js diff --git a/basicConfig/webcontent/css/common.css b/basicConfig/ms-connector/webcontent/css/common.css index 14fe622d..14fe622d 100644 --- a/basicConfig/webcontent/css/common.css +++ b/basicConfig/ms-connector/webcontent/css/common.css diff --git a/basicConfig/webcontent/css/css_country.css b/basicConfig/ms-connector/webcontent/css/css_country.css index e193126c..e193126c 100644 --- a/basicConfig/webcontent/css/css_country.css +++ b/basicConfig/ms-connector/webcontent/css/css_country.css diff --git a/basicConfig/webcontent/css/css_error.css b/basicConfig/ms-connector/webcontent/css/css_error.css index d772df43..d772df43 100644 --- a/basicConfig/webcontent/css/css_error.css +++ b/basicConfig/ms-connector/webcontent/css/css_error.css diff --git a/basicConfig/webcontent/img/ajax-loader.gif b/basicConfig/ms-connector/webcontent/img/ajax-loader.gif Binary files differindex f2a1bc0c..f2a1bc0c 100644 --- a/basicConfig/webcontent/img/ajax-loader.gif +++ b/basicConfig/ms-connector/webcontent/img/ajax-loader.gif diff --git a/basicConfig/webcontent/js/jquery-3.6.0.min.js b/basicConfig/ms-connector/webcontent/js/jquery-3.6.0.min.js index c4c6022f..c4c6022f 100644 --- a/basicConfig/webcontent/js/jquery-3.6.0.min.js +++ b/basicConfig/ms-connector/webcontent/js/jquery-3.6.0.min.js diff --git a/basicConfig/webcontent/js/js_country.js b/basicConfig/ms-connector/webcontent/js/js_country.js index 5dcea90e..5dcea90e 100644 --- a/basicConfig/webcontent/js/js_country.js +++ b/basicConfig/ms-connector/webcontent/js/js_country.js diff --git a/basicConfig/ms-proxyservice/default_config.properties b/basicConfig/ms-proxyservice/default_config.properties new file mode 100644 index 00000000..27126cb6 --- /dev/null +++ b/basicConfig/ms-proxyservice/default_config.properties @@ -0,0 +1,69 @@ +## Basic service configuration +eidas.ms.context.url.prefix= +eidas.ms.core.configRootDir=file:./ + + +##Directory for static Web content +eidas.ms.webcontent.static.directory=webcontent/ +eidas.ms.webcontent.templates=templates/ +eidas.ms.webcontent.properties=properties/messages + + +##Monitoring +eidas.ms.monitoring.eIDASNode.metadata.url= + + +## extended validation of pending-request Id's +eidas.ms.core.pendingrequestid.digist.secret=pendingReqIdSecret + + +############################################# +#### eIDAS Ref. Implementation connector #### +eidas.ms.auth.eIDAS.node_v2.proxy.entityId=ownSpecificProxy +eidas.ms.auth.eIDAS.node_v2.proxy.forward.endpoint= + + +# Mandate configuration +eidas.ms.auth.eIDAS.proxy.mandates.enabled=false +#eidas.ms.auth.eIDAS.proxy.mandates.profiles.natural.default= +#eidas.ms.auth.eIDAS.proxy.mandates.profiles.legal.default= + + +## special foreign eIDAS-Connector configuration +#eidas.ms.connector.0.uniqueID= +#eidas.ms.connector.0.countryCode=CC +#eidas.ms.connector.0.mandates.enabled=false +#eidas.ms.connector.0.mandates.natural= +#eidas.ms.connector.0.mandates.legal= +#eidas.ms.connector.0.auth.idaustria.entityId= + + + +## PVP2 S-Profile communication with ID Austria System +# EntityId and optional metadata of ID Austria System +eidas.ms.modules.idaustriaauth.idp.entityId=https://eid.oesterreich.gv.at/auth/idp/shibboleth + +# Common SAML2 configuration +eidas.ms.pvp2.metadata.organisation.name=JUnit +eidas.ms.pvp2.metadata.organisation.friendyname=For testing with jUnit +eidas.ms.pvp2.metadata.organisation.url=http://junit.test +eidas.ms.pvp2.metadata.contact.givenname=Max +eidas.ms.pvp2.metadata.contact.surname=Mustermann +eidas.ms.pvp2.metadata.contact.email=max@junit.test + +# SAML2 client configuration +eidas.ms.modules.idaustriaauth.keystore.type=jks +eidas.ms.modules.idaustriaauth.keystore.path=keys/.... +eidas.ms.modules.idaustriaauth.keystore.password= +eidas.ms.modules.idaustriaauth.metadata.sign.alias= +eidas.ms.modules.idaustriaauth.metadata.sign.password= +eidas.ms.modules.idaustriaauth.request.sign.alias= +eidas.ms.modules.idaustriaauth.request.sign.password= +eidas.ms.modules.idaustriaauth.response.encryption.alias= +eidas.ms.modules.idaustriaauth.response.encryption.password= + +# TrustStore IDA SAML2 Metadaten +eidas.ms.modules.idaustriaauth.truststore.type=jks +eidas.ms.modules.idaustriaauth.truststore.path=keys/truststore_ida.jks +eidas.ms.modules.idaustriaauth.truststore.password=password + diff --git a/basicConfig/ms-proxyservice/logback_config.xml b/basicConfig/ms-proxyservice/logback_config.xml new file mode 100644 index 00000000..d2bf5d85 --- /dev/null +++ b/basicConfig/ms-proxyservice/logback_config.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- For assistance related to logback-translator or configuration --> +<!-- files in general, please contact the logback user mailing list --> +<!-- at http://www.qos.ch/mailman/listinfo/logback-user --> +<!-- --> +<!-- For professional support please see --> +<!-- http://www.qos.ch/shop/products/professionalSupport --> +<!-- --> +<configuration> + <appender name="MSEIDAS" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> + <File>${catalina.base}/logs/ms_specific_proxyservice.log.log</File> + <encoder> + <pattern>%5p | %d{ISO8601} | %X{transactionId} | %t | %logger{16} | %m%n</pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${catalina.base}/logs/ms_specific_proxyservice.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <MaxFileSize>10000KB</MaxFileSize> + </triggeringPolicy> + </appender> + + <appender name="msnode" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> + <File>${catalina.base}/logs/eidas-ms-reversion_proxyservice.log</File> + <encoder> + <pattern>%5p | %d{dd HH:mm:ss,SSS} | %X{transactionId} | %t | %m%n</pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <maxIndex>9999</maxIndex> + <FileNamePattern>${catalina.base}/logs/eidas-ms-reversion_proxyservice.log.%i</FileNamePattern> + </rollingPolicy> + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <MaxFileSize>10000KB</MaxFileSize> + </triggeringPolicy> + </appender> + + <appender name="statistic" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> + <File>${catalina.base}/logs/eidas-ms-statistic_proxyservice.log</File> + <encoder> + <pattern>%5p | %d{dd HH:mm:ss,SSS} | %X{transactionId} | %t | %m%n</pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <maxIndex>9999</maxIndex> + <FileNamePattern>${catalina.base}/logs/eidas-ms-statistic_proxyservice.log.%i</FileNamePattern> + </rollingPolicy> + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <MaxFileSize>10000KB</MaxFileSize> + </triggeringPolicy> + </appender> + + <appender name="stdout" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> + <File>${catalina.base}/logs/console.log</File> + <encoder> + <pattern>%5p | %d{dd HH:mm:ss,SSS} | %X{transactionId} | %t | %m%n</pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${catalina.base}/logs/console.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + </appender> + + <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%5p | %d{dd HH:mm:ss,SSS} | %X{transactionId} | %20c | %10t | %m%n</pattern> + </encoder> + </appender> + + <logger name="at.asitplus.eidas.specific.core.logger.StatisticLogger" additivity="false" level="info"> + <appender-ref ref="statistic"/> + </logger> + <logger name="at.asitplus.eidas.specific.core.logger.RevisionLogger" level="info"> + <appender-ref ref="reversion"/> + </logger> + <logger name="at.gv.egiz.eventlog.simple.all" additivity="false" level="info"> + <appender-ref ref="reversion"/> + </logger> + <logger name="at.gv.egiz.eventlog.csv.all" additivity="false" level="off" /> + <logger name="at.gv.egiz.eventlog.plain.all" additivity="false" level="off" /> + + <logger name="at.asitplus.eidas.specific" additivity="false" level="info"> + <appender-ref ref="MSEIDAS"/> + </logger> + <logger name="at.gv.egiz.eaaf" additivity="false" level="info"> + <appender-ref ref="MSEIDAS"/> + </logger> + + <root level="info"> + <appender-ref ref="console"/> + </root> +</configuration> diff --git a/basicConfig/ms-proxyservice/misc/idaAttributeMapping.json b/basicConfig/ms-proxyservice/misc/idaAttributeMapping.json new file mode 100644 index 00000000..3de4b8a9 --- /dev/null +++ b/basicConfig/ms-proxyservice/misc/idaAttributeMapping.json @@ -0,0 +1,187 @@ +[ + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier", + "idaAttribute": { + "basic": "urn:oid:1.2.40.0.10.2.1.1.149", + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.98" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName", + "idaAttribute": { + "basic": "urn:oid:2.5.4.42", + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.78" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/CurrentFamilyName", + "idaAttribute": { + "basic": "urn:oid:1.2.40.0.10.2.1.1.261.20", + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.80" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/DateOfBirth", + "idaAttribute": { + "basic": "urn:oid:1.2.40.0.10.2.1.1.55", + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.82" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/PlaceOfBirth", + "idaAttribute": {}, + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/BirthName", + "idaAttribute": {}, + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/legalperson/LegalPersonIdentifier", + "idaAttribute": { + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.100" + }, + "addionalRequiredAttributes" : [ + "urn:oid:1.2.40.0.10.2.1.1.261.76", + "urn:oid:1.2.40.0.10.2.1.1.149", + "urn:oid:2.5.4.42", + "urn:oid:1.2.40.0.10.2.1.1.261.20", + "urn:oid:1.2.40.0.10.2.1.1.55" + ], + "type": { + "mds": true, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/legalperson/LegalName", + "idaAttribute": { + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.84" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/representative/PersonIdentifier", + "idaAttribute": { + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.149" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": true + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/representative/CurrentFamilyName", + "idaAttribute": { + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.20" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": true + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/representative/CurrentGivenName", + "idaAttribute": { + "withMandates": "urn:oid:2.5.4.42" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": true + } + }, + { + "eidasAttribute": "http://eidas.europa.eu/attributes/naturalperson/representative/DateOfBirth", + "idaAttribute": { + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.55" + }, + "type": { + "mds": true, + "autoIncludeWithMandates": true + } + }, + { + "eidasAttribute": "http://e-justice.europa.eu/attributes/naturalperson/eJusticeNaturalPersonRole", + "specificAttributeHandlerClass": "at.asitplus.eidas.specific.modules.msproxyservice.handler.EJusticePersonRoleHandler", + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "http://e-justice.europa.eu/attributes/legalperson/eJusticeLegalPersonRole", + "specificAttributeHandlerClass": "at.asitplus.eidas.specific.modules.msproxyservice.handler.EJusticePersonRoleHandler", + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "*", + "idaAttribute": { + "basic": "urn:oid:1.2.40.0.10.2.1.1.261.32", + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.32" + }, + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "*", + "idaAttribute": { + "basic": "urn:oid:1.2.40.0.10.2.1.1.261.108", + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.108" + }, + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "*", + "idaAttribute": { + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.68" + }, + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + }, + { + "eidasAttribute": "*", + "idaAttribute": { + "withMandates": "urn:oid:1.2.40.0.10.2.1.1.261.106" + }, + "type": { + "mds": false, + "autoIncludeWithMandates": false + } + } +] diff --git a/basicConfig/ms-proxyservice/properties/messages.properties b/basicConfig/ms-proxyservice/properties/messages.properties new file mode 100644 index 00000000..03b355fa --- /dev/null +++ b/basicConfig/ms-proxyservice/properties/messages.properties @@ -0,0 +1,14 @@ +##Errorpage template +gui.errorpage.msg.title=Authentication error +gui.errorpage.msg.information=The authentication stops on account of a process error: +gui.errorpage.msg.errorcode=Error Code: +gui.errorpage.msg.errormsg=Error Message: +gui.errorpage.msg.stacktrace=Stacktrace: + +##Country-Selection page +gui.countryselection.title=eIDAS-Login country selection +gui.countryselection.logo.bmi.alt=Logo BMI +gui.countryselection.link.bmi=Mainpage BMI +gui.countryselection.header1=Federal Ministry of Internal Affairs + + diff --git a/basicConfig/ms-proxyservice/properties/messages_de.properties b/basicConfig/ms-proxyservice/properties/messages_de.properties new file mode 100644 index 00000000..4e843e44 --- /dev/null +++ b/basicConfig/ms-proxyservice/properties/messages_de.properties @@ -0,0 +1,12 @@ +##Errorpage template
+gui.errorpage.msg.title=Es ist ein Fehler aufgetreten
+gui.errorpage.msg.information=Der Anmeldevorgang wurde aufgrund eines Fehlers beendet:
+gui.errorpage.msg.errorcode=Fehlercode:
+gui.errorpage.msg.errormsg=Fehlermeldung:
+gui.errorpage.msg.stacktrace=Stacktrace:
+
+##Country-Selection page
+gui.countryselection.title=eIDAS-Login Länderauswahl
+gui.countryselection.logo.bmi.alt=Logo BMI
+gui.countryselection.link.bmi=Startseite BMI
+gui.countryselection.header1=Bundesministerium für Inneres
diff --git a/basicConfig/ms-proxyservice/templates/eidas_node_forward.html b/basicConfig/ms-proxyservice/templates/eidas_node_forward.html new file mode 100644 index 00000000..4486d146 --- /dev/null +++ b/basicConfig/ms-proxyservice/templates/eidas_node_forward.html @@ -0,0 +1,36 @@ +<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorator="fragments/base"
+ th:with="lang=${#locale.language}" th:lang="${lang}">
+<head>
+ <script src="$contextPath/autocommit.js"
+ th:attr="src=@{/autocommit.js}"></script>
+</head>
+<body>
+ <noscript>
+ <p>
+ <strong>Note:</strong> Since your browser does not support
+ JavaScript, you must press the Continue button once to proceed.
+ </p>
+ </noscript>
+
+ <div id="alert">Your login is being processed. Thank you for
+ waiting.</div>
+
+ <form action="${endPoint}" method="post" target="_parent"
+ th:attr="action=@{${endPoint}}">
+ <div>
+ <input type="hidden" name="${tokenName}" value="${tokenValue}"
+ th:attr="value=${tokenValue},name=${tokenName}" />
+ </div>
+ <noscript>
+ <div>
+ <p>Your browser does not support JavaScript. Click the button to continuing the process .</p>
+ <input type="submit" value="Continue" />
+ </div>
+ </noscript>
+ </form>
+
+</body>
+</html>
\ No newline at end of file diff --git a/basicConfig/ms-proxyservice/templates/error.html b/basicConfig/ms-proxyservice/templates/error.html new file mode 100644 index 00000000..0d8d2d4e --- /dev/null +++ b/basicConfig/ms-proxyservice/templates/error.html @@ -0,0 +1,60 @@ +<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorator="fragments/base"
+ th:with="lang=${#locale.language}" th:lang="${lang}">
+
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <link rel="stylesheet" href="/static/common.css"/>
+
+ <title th:text="#{gui.errorpage.msg.title}">An error arise ... </title>
+</head>
+
+<body>
+ <div class="header container">
+ <div class="titlebar">
+ <div>
+ <a href="https://www.bmi.gv.at/" target="_blank" title="Home">
+ <img class="toplogo img-responsive" src="/static/BMI.png" alt="Logo BMI"
+ th:attr="alt=#{gui.countryselection.logo.bmi.alt}">
+ <h1 class="hidden" th:text="#{gui.countryselection.header1}"> Bundesministerium für Inneres </h1>
+ </a>
+ </div>
+ <ul class="nav_oben">
+
+ <li><a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.link.bmi}" > Startseite BMI </a></li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="content">
+ <div id="page1" class="case selected-case" role="main">
+ <div class="hell" role="application" >
+ <h2 class="OA_header" role="heading" th:text="#{gui.errorpage.msg.title}">Error Header</h2>
+
+ <div id="alert_area" class="hell" role="application" >
+ <p th:text="#{gui.errorpage.msg.information}">Error Information</p>
+ <br/>
+ <!-- internal errorCodes -->
+ <!--p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${errorCode}"></span></p-->
+
+ <!-- grouped external errorCodes -->
+ <p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${extErrorCode}"></span></p>
+
+ <p><b th:text="#{gui.errorpage.msg.errormsg}">Msg:</b> <span th:text="${#messages.msgWithParams('__${errorCode}__', '__${errorParams}__')}"></span></p>
+ </div>
+ </div>
+
+ <div th:if="${stacktrace}">
+ <p><b th:text="#{gui.errorpage.msg.stacktrace}">fullError</b> <span th:text="${stacktrace}"></span></p>
+ </div>
+
+ </div>
+ </div>
+ <footer>
+ <div class="copyright">© BUNDESMINISTERIUM FÜR INNERES</div>
+ <div></div>
+ </footer>
+
+</body>
+</html> diff --git a/basicConfig/ms-proxyservice/templates/error_message.html b/basicConfig/ms-proxyservice/templates/error_message.html new file mode 100644 index 00000000..0d8d2d4e --- /dev/null +++ b/basicConfig/ms-proxyservice/templates/error_message.html @@ -0,0 +1,60 @@ +<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorator="fragments/base"
+ th:with="lang=${#locale.language}" th:lang="${lang}">
+
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <link rel="stylesheet" href="/static/common.css"/>
+
+ <title th:text="#{gui.errorpage.msg.title}">An error arise ... </title>
+</head>
+
+<body>
+ <div class="header container">
+ <div class="titlebar">
+ <div>
+ <a href="https://www.bmi.gv.at/" target="_blank" title="Home">
+ <img class="toplogo img-responsive" src="/static/BMI.png" alt="Logo BMI"
+ th:attr="alt=#{gui.countryselection.logo.bmi.alt}">
+ <h1 class="hidden" th:text="#{gui.countryselection.header1}"> Bundesministerium für Inneres </h1>
+ </a>
+ </div>
+ <ul class="nav_oben">
+
+ <li><a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.link.bmi}" > Startseite BMI </a></li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="content">
+ <div id="page1" class="case selected-case" role="main">
+ <div class="hell" role="application" >
+ <h2 class="OA_header" role="heading" th:text="#{gui.errorpage.msg.title}">Error Header</h2>
+
+ <div id="alert_area" class="hell" role="application" >
+ <p th:text="#{gui.errorpage.msg.information}">Error Information</p>
+ <br/>
+ <!-- internal errorCodes -->
+ <!--p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${errorCode}"></span></p-->
+
+ <!-- grouped external errorCodes -->
+ <p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${extErrorCode}"></span></p>
+
+ <p><b th:text="#{gui.errorpage.msg.errormsg}">Msg:</b> <span th:text="${#messages.msgWithParams('__${errorCode}__', '__${errorParams}__')}"></span></p>
+ </div>
+ </div>
+
+ <div th:if="${stacktrace}">
+ <p><b th:text="#{gui.errorpage.msg.stacktrace}">fullError</b> <span th:text="${stacktrace}"></span></p>
+ </div>
+
+ </div>
+ </div>
+ <footer>
+ <div class="copyright">© BUNDESMINISTERIUM FÜR INNERES</div>
+ <div></div>
+ </footer>
+
+</body>
+</html> diff --git a/basicConfig/ms-proxyservice/templates/pvp2_post_binding.html b/basicConfig/ms-proxyservice/templates/pvp2_post_binding.html new file mode 100644 index 00000000..8f72da13 --- /dev/null +++ b/basicConfig/ms-proxyservice/templates/pvp2_post_binding.html @@ -0,0 +1,36 @@ +## ## Velocity Template for SAML 2 HTTP-POST binding ## ## Velocity
+##context may contain the following properties ## action - String - the
+##action URL for the form ## RelayState - String - the relay state for the
+##message ## SAMLRequest - String - the Base64 encoded SAML Request ##
+##SAMLResponse - String - the Base64 encoded SAML Response
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <script src="$contextPath/autocommit.js"></script>
+</head>
+<body>
+ <noscript>
+ <p>
+ <strong>Note:</strong> Since your browser does not support
+ JavaScript, you must press the Continue button once to proceed.
+ </p>
+ </noscript>
+
+ <div id="alert">Your login is being processed. Thank you for
+ waiting.</div>
+
+ <form action="${action}" method="post" target="_parent">
+ <div>
+ #if($RelayState) <input type="hidden" name="RelayState" value="${RelayState}"/> #end
+ #if($SAMLRequest) <input type="hidden" name="SAMLRequest" value="${SAMLRequest}" /> #end
+ #if($SAMLResponse) <input type="hidden" name="SAMLResponse" value="${SAMLResponse}" /> #end
+ </div>
+ <noscript>
+ <div>
+ <input type="submit" value="Continue" />
+ </div>
+ </noscript>
+ </form>
+
+</body>
+</html>
\ No newline at end of file diff --git a/basicConfig/ms-proxyservice/webcontent/autocommit.js b/basicConfig/ms-proxyservice/webcontent/autocommit.js new file mode 100644 index 00000000..d21a5651 --- /dev/null +++ b/basicConfig/ms-proxyservice/webcontent/autocommit.js @@ -0,0 +1,5 @@ +function autoCommmit() { + document.forms[0].submit(); +} + +document.addEventListener('DOMContentLoaded', autoCommmit);
\ No newline at end of file diff --git a/basicConfig/ms-proxyservice/webcontent/css/common.css b/basicConfig/ms-proxyservice/webcontent/css/common.css new file mode 100644 index 00000000..14fe622d --- /dev/null +++ b/basicConfig/ms-proxyservice/webcontent/css/common.css @@ -0,0 +1,156 @@ +body { + background-image: none; + margin: 0px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +div.header { + background-color: #e9ecef; + padding-top: 28px; + padding-left: 137px; + padding-right: 137px; + padding-bottom: 12px; +} +div.titlebar { + padding: 0px; +} +div.titlebar div { +} +.hidden { + display: none; +} +ul.nav_oben { + padding: 0px; + margin: 0px; + text-align: right; + text-transform: uppercase; +} +li { + display: inline-block; +} +div.header a { + text-decoration: none; + color: black; +} +a { + text-decoration: none; + color: #a22c1c; +} + +.block { + /* override country.css */ + display: flex; + flex-direction: row; + flex-wrap: wrap; + cursor: pointer; + text-decoration: none; + padding-right:2%; + width: 200px; + padding-bottom: 20px; +} + +@media only screen and (min-width: 1000px) { + div.header { + padding-left: 137px; + padding-right: 137px; + } + .content { + padding-left: 137px; + padding-right: 137px; + } + footer { + padding-left: 137px; + padding-right: 137px; + } +} +@media only screen and (max-width: 999px) { + div.header { + padding-left: 1em; + padding-right: 1em; + } + .content { + padding-left: 1em; + padding-right: 1em; + } + footer { + padding-left: 1em; + padding-right: 1em; + } +} + +div.subtitle h1 { + padding: 0px; + margin: 0px; + font-size: 130%; + align: right; +} +div.subtitle h2 { + padding: 0px; + margin: 0px; + font-size: 115%; +} +footer { + left: 0; + padding-top: 1em; + bottom: 0; + width: 100%; + height: 2em; + background-color: rgb(162,44,28); + color: white; +} +.float { + float: left; +} +.floatright { + float: right; +} +.copyright { + width: 66%; + font-size: 80%; +} + + + + +#countries { + padding-bottom: 40px; +} + +#country { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + padding-bottom: 20px; +} + +.countryimage { + width:50px; + height:50px; + padding-right: 2%; + padding-bottom: 4%; +} + +input.cancel-button { +} + +input[type=submit].country-button { + width: inherit; +/* text-align: left; */ +} + +input[type=button], input[type=submit].country-button, input[type=reset] { + display:flex; + background-color:transparent; + border:none; + color: black; + text-decoration: none; + cursor: pointer; + /* center things like its 2019 (using display:flex) */ + align-items: center; + justify-content: center; +} + +form { + justify-content: center; +} diff --git a/basicConfig/ms-proxyservice/webcontent/css/css_error.css b/basicConfig/ms-proxyservice/webcontent/css/css_error.css new file mode 100644 index 00000000..d772df43 --- /dev/null +++ b/basicConfig/ms-proxyservice/webcontent/css/css_error.css @@ -0,0 +1,26 @@ +@charset "utf-8"; + body { + padding-left: 5%; + background-color: #F9F9F9; + } + #page { + padding-top: 2%; + padding-right: 10%; + padding-left: 5%; + } + + .OA_header { + font-size: 2.1em; + padding-top:1%; + margin-bottom: 1%; + margin-top: 1%; + + } + + #alert_area { + float:left; + width: 100%; + } + + + diff --git a/basicConfig/ms-proxyservice/webcontent/img/ajax-loader.gif b/basicConfig/ms-proxyservice/webcontent/img/ajax-loader.gif Binary files differnew file mode 100644 index 00000000..f2a1bc0c --- /dev/null +++ b/basicConfig/ms-proxyservice/webcontent/img/ajax-loader.gif |