diff --git a/validator-common/README b/validator-common/README
new file mode 120000
index 00000000..59a23c46
--- /dev/null
+++ b/validator-common/README
@@ -0,0 +1 @@
+../README
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/cert/sc-prod-md.crt b/validator-common/overlay/etc/metadata-validator/cert/sc-prod-md.crt
new file mode 100644
index 00000000..522e3b87
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/cert/sc-prod-md.crt
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGFTCCA/2gAwIBAgIJAMRMtpYesnyPMA0GCSqGSIb3DQEBCwUAMIGgMQswCQYD
+VQQGEwJTRTESMBAGA1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hvbG0x
+IjAgBgNVBAoMGUUtTGVnaXRpbWF0aW9uc27Dg8KkbW5kZW4xFzAVBgNVBAsMDlN3
+ZWRlbiBDb25uZWN0MSwwKgYDVQQDDCNTd2VkZW4gQ29ubmVjdCBtZXRhZGF0YSBz
+aWduZXIgdjIuMDAeFw0xODA1MzAwOTIzMzVaFw0zODA1MzAwOTIzMzVaMIGgMQsw
+CQYDVQQGEwJTRTESMBAGA1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hv
+bG0xIjAgBgNVBAoMGUUtTGVnaXRpbWF0aW9uc27Dg8KkbW5kZW4xFzAVBgNVBAsM
+DlN3ZWRlbiBDb25uZWN0MSwwKgYDVQQDDCNTd2VkZW4gQ29ubmVjdCBtZXRhZGF0
+YSBzaWduZXIgdjIuMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPer
+La2IxQHWRFvX5mC8OgYSsZTjNcEGz0vLwBsdckQiBWWgrLdnU6+raS/SlriY4qcZ
+g8CJkhj8CdLBn6UxwdwOy+tGYjyAFCkV2yQ68euyNqwWgT6iiq/dn1kjWzamC18H
+U0LN/c7eieldhdI8edSF9Z6Drjt7s8glP4Lrd1FM5NXWros06fpEs61BoMZrIyei
+ptB4M7XBGJW6mQx3trnN4FnDZIyzNf9H+Z4XvXnn/URLMd0S3hS2uxVS7OGluKY6
+hhXfpcOGwUKcQmE7coI0mhZ9TAsG7h++J/A7aBp3eWr9eXzeFmwg7sHRBtd3LaD+
+yBLXuUFaPHJyOSFCeiys1O1Oh2CGpJIfPHlqmCQmTQrNEtioJyPRVAZamwio+mYt
+EsI8ssPW3/FNEe93cHd88BDhCDtz5oiQiGyflsCWSh4SwjFVVw7jgRGzmkn2TfHv
+yjiiexS8LeleqwMQ95e9dcVbktxBvDnPd0xCAXVL0y2P31DXLYe/2806C/21KWRU
+Z/EtLTQKpxJWhqsZwSZSpxjb6h3l8D9HAm5w4I/4w3JB40R7GJFWtuwh+clRnzC2
+xtN9cGfe+LXG0SG6ObUu9XBVBwNIL2xNgz+eSCv1n/8hlahoZySLtj0AKFQPyWvw
+Bitvvwk8uq3NPpBiz2nilHG3nnzlp+TK6+pjOHOrAgMBAAGjUDBOMB0GA1UdDgQW
+BBTqVEEVOf9SV47Nz0su8/MYAWOy4jAfBgNVHSMEGDAWgBTqVEEVOf9SV47Nz0su
+8/MYAWOy4jAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQAXjshVZ5td
+ZqClqmZUEEWFh8oDk8lrRkZfXUmThQiKYq7NrLecbquDh1Mglq3zVxndZMAZVzrQ
+3U/EJ7B+LXfd5fnl91+qb5d1bJBs/Om/AyFA/bBnOyYPzkZWf+M8nItzQyOJX7ZO
+kzIOakaet6HR6T7ADk7vfSjqnRLywNL/cq3/if9c5WGh5NUSteltuDHOsm3DwvN4
+aFP+rngiYF1j509wbZOO7koIwZZUG9g0Etv0T8u7xXyZkYxjEfrr4uMf6121PoaP
+7mMU1Msuqw7idRMOj7mL5tIpu1ihw/a2pWqaXkxNsQXpOv+HtpBZ28pzqAtcHt8q
+r5V5Gm+W37RMlnIDsJwgEfA6FKEDqahSRmYnh8v+F9aDRDpGYpwRtK3k0tiy9Kvp
+8o16aCCqLtFU+Lme2NzkcFQubPmkan21M6/VTGP7UrgtvhXAaqYcTQBq/YJ4TiXz
+SBZgjywUi1nMZAzG4KS4jFR27Kdiul3G10I/M7nPtNq51uNspiO117zRo/8qD4wE
+BOoxiQw0f7/UPW8uznHU3DR3JUkTTlUfKHrfB7RZvkqw15bLkH8DpgINkjW+PFzI
+OkY6KYbZj/wwCYBw3rxMb4oY3Lv0S6cLmLvxmkG8eizY9ymwNlr/YAwPeyzuLPRf
+j6+cBKFT97et/lUMyfKVwbmuJNgtABRRcw==
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/cert/sc-qa-md.crt b/validator-common/overlay/etc/metadata-validator/cert/sc-qa-md.crt
new file mode 100644
index 00000000..df0e4138
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/cert/sc-qa-md.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFIjCCAwoCCQCVO3v9xSA+FDANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJT
+RTEnMCUGA1UECgweU3dlZGlzaCBFLWlkZW50aWZpY2F0aW9uIEJvYXJkMRswGQYD
+VQQDDBJRQSBNZXRhZGF0YSBTaWduZXIwHhcNMTcxMjE5MTIyMDI1WhcNMjcxMjE3
+MTIyMDI1WjBTMQswCQYDVQQGEwJTRTEnMCUGA1UECgweU3dlZGlzaCBFLWlkZW50
+aWZpY2F0aW9uIEJvYXJkMRswGQYDVQQDDBJRQSBNZXRhZGF0YSBTaWduZXIwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDYzcmlNTMkBzIYUXxT13zNMakh
+xR9BO1Qnlt2euUNdvL8FhgiNo+2AJDxFWts8nsg9Jam15F38nTqRMt4r1zFHYFJ5
+22h8urckpwvFVu/kjQrY8pztLE/pPvGXLPlySDkiRifCGibXuACngZx5chCwNs2h
+2OoMgKH7d5aZmUcB2mIc/Ybd98W9jtch1gh5/QM0aJsYnDTYuB840YGwHXCyiBUf
+1teUT9bJ/Y90OSXBdib9kuOmtQNMTYtyX8FAodYXVx8ibXNDfhdGaBJh+2J4lFTA
+DQQ1tM1YigZyvBuslBcuLDfZce0OaWPYPAf8PE8voxJhGkA026GGNjXP/9nRK146
+bkN4nd/Aa6842aYEOjjcDAl43tjHKZBu0+pnq/2GRiN7Dw4Y+Td/2y8PqD/W87CV
+ttrU6yniSMr7Y1+TfzzESSVPXs+csyatH9MJ2IA184Oh7TL6tPh5N96ugh7s85pN
+zswG+Gouw1BVCfqpSJmmNMheEOr6igOYQ0LY5aOooLoqET9gu0ks9cixjANFhnhE
+vRVkMfbnFVAnvXQEWPQY5NgqO4b0Z65ey011L+slNo6EIiw0FkznAwER0aYzrM2r
+hs/hJAAbjnxEhgMKN9bdoXpnrAehwbTOTipOWwrdcd3IKNdDEyFY15j5rGgyIBcK
+8gNnvGJLKcaC4vBd1QIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQBuws48HrfwW/Eq
+WN4+VSZ1cMgkp/mgqyyDdXoCPUf5o7ro17oDSocmpdQypiCr6M88MACBX8cqKmie
+kIyptrzp1x2seo8rTJpno97dt3hSwbe6+SbRh2bjDpDzL2ecrtv/GXjR41b2CbMO
+wu4WTgiFhWmKGNDNcEem37VUpKEYe7u/ucie71AQi49jM0rJ5uSVdBONKj3iAH5d
+mckw2nt6HKMJ0S+ckM/aq+m8ACgAyYmMr74Yt6wcpl/NORtIxaGUeT7Z8rN7TUmk
+gP9scbYF16xJJkxtylnK2BrSwSFOIuB5KJo2xxhuMffxEgdy4711TfwMCUaTPKmF
+dlYzPKeBaYzWFU42jcVsiQz4mSqgvS2dS8nZpYe2K0zHIzKwytn+HQ36KhRRDAVR
+7aKH9S8FZJXC6wqXFdEwwZujkGhu/BxgfjGkde8qOQMUwHboX9+aflQ9okB1Tha6
+xVB1kG86WdgJLmrsfqaX1FVyO761ZXYHTuoAZ0iuzIRhteUksfRZchnKpUX0fF1i
+yB9M0E6JfqvFeVfLlo8c2FI4MUYFWgqciizaXSfw0waMFdX5+U33eXr1RWF0POZX
+JERf83JkjVLanESP9/U9nsZYgIiSX88PahYtuSZLhqamzzFvK+wuVcNKark8s1kS
+2d8EIOY6h4jmS2ds9ORaavkV/xxTAA==
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/cert/se-metadata-cert.crt b/validator-common/overlay/etc/metadata-validator/cert/se-metadata-cert.crt
new file mode 100644
index 00000000..3686046a
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/cert/se-metadata-cert.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICyzCCAbMCBgFEwQFDRDANBgkqhkiG9w0BAQUFADApMScwJQYDVQQDDB5Td2VkaXNoIEUtaWRl
+bnRpZmljYXRpb24gYm9hcmQwHhcNMTQwMzE0MTIzMTI5WhcNMTkwMzE0MTQzMTI5WjApMScwJQYD
+VQQDDB5Td2VkaXNoIEUtaWRlbnRpZmljYXRpb24gYm9hcmQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQCGxrPbCuZYeMZniwOAIO1MiQjGD3LIfaLBddNucsAVrxpYW7bYMwzvgL2Gp4yV
+6IyAx5kUgHPjEkEEIjH+NhxYdChD8iWBkLuaOkxyYNXFjFQ3APk5kqP+BB+fP8peWlKGX6S2mfcB
+7eObDQqb28osfXE+bak4X2rNf5i+Yx9VdXBpRhDxk7umDdWTSJlc+ZCxWUt3ldc58/sXIgAzVWk4
+9A3GIvOHlBVgm/5g3yzU9HnxD1fyOKT+NkF5J9mjM0x8Qg9K/Zep3n1xmb8kZ/vcRxv+AounGDd7
+w/QWW84sPegySHqm5GkLSgwB63nJZr5wS+qoT9sTooCM0AhBhY1FAgMBAAEwDQYJKoZIhvcNAQEF
+BQADggEBAESqy6GrAEbL/blJQxDb/LCCW4y3KAAs/pqvR4SQMP0rvVe5FJiUJsE/6DEhk+cl0N+o
+5e8/NusIUD7f6vKSYTHgCodSeDYGdrkRrOucDBWgIlYVsR3yTb/za3AlgiTW6eGGqiY6SeEzXNTM
+5o0GpoZbknQZEK/xCJLtMAU6oX7pDBLahtYeJAJJNFVjtPKsERr2Ob2ni9XW8+fxyjv0v2gmlQvW
+i6VnpD6VJ3nwAFDsGHBgzli32YBd62rukqyiqvC595LNg0Dg4fyv1ZuOiqajWSd3x8JI6bS01QvY
+3fNKY84wMQXpRq9C3zRtpPKmh22W6mcQvh1uN3qNaIEEklE=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/cfg/application.properties b/validator-common/overlay/etc/metadata-validator/cfg/application.properties
new file mode 100644
index 00000000..d74ce1c7
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/cfg/application.properties
@@ -0,0 +1,74 @@
+# Main service configurations
+server.context-path=/metadata-validator
+md-validator.path.prefix=${spring.config.location}..
+md-validator.domain.prefix=https://swedenconnect.se/metadata-validator/
+server.port=8443
+md-validator.daemon.recache.delay.sec=600
+md-validator.html.title=Metadata Validator - Swedenconnect QA Metadata
+md-validator.title=Metadata Validator for Sweden Connect Metadata
+md-validator.logo.location=${md-validator.path.prefix}/sc-logo-yob-exp.svg
+md-validator.logo.height=60
+md-validator.home.text=Home
+md-validator.home.url=https://swedenconnect.se
+
+# Metadata location for national metadata specified as either URL (http or https), "file://" or "classpath:"
+# Multipple sources may be set ordered by index. Valid parameters are "location", "certFile" (optional),
+# "cacheFile" (optional), "index" and "ignoreSignatureValidation" default false.
+
+md-validator.metadataSource.prod[0].location=https://md.swedenconnect.se/entities
+md-validator.metadataSource.prod[0].certFile=${md-validator.path.prefix}/cert/sc-prod-md.crt
+md-validator.metadataSource.prod[0].cacheFile=${md-validator.path.prefix}/mdcache/prod-metadata-cache.xml
+md-validator.metadataSource.prod[0].index=0
+md-validator.metadataSource.prod[0].ignoreSignatureValidation=false
+
+md-validator.metadataSource.qa[0].location=https://qa.md.swedenconnect.se/entities
+md-validator.metadataSource.qa[0].certFile=${md-validator.path.prefix}/cert/sc-qa-md.crt
+md-validator.metadataSource.qa[0].cacheFile=${md-validator.path.prefix}/mdcache/qa-metadata-cache.xml
+md-validator.metadataSource.qa[0].index=0
+md-validator.metadataSource.qa[0].ignoreSignatureValidation=false
+
+md-validator.metadataSource.sandbox[0].location=http://eid.svelegtest.se/metadata/feed
+md-validator.metadataSource.sandbox[0].certFile=${md-validator.path.prefix}/cert/se-metadata-cert.crt
+md-validator.metadataSource.sandbox[0].cacheFile=${md-validator.path.prefix}/mdcache/sandbox-metadata-cache.xml
+md-validator.metadataSource.sandbox[0].index=0
+md-validator.metadataSource.sandbox[0].ignoreSignatureValidation=false
+
+md-validator.federationType.prod=prod
+md-validator.federationType.qa=qa
+md-validator.federationType.sandbox=test
+
+# Optional definiton of title names and descriptions for each federation
+md-validator.federationName.prod=Production
+md-validator.federationDescription.prod=Metadata Validator for Sweden Connect services in Production
+md-validator.federationName.qa=QA
+md-validator.federationDescription.qa=Metadata Validator for Sweden Connect QA federation
+md-validator.federationName.sandbox=Sandbox
+md-validator.federationDescription.sandbox=Metadata Validator for Sweden Connect Sandbox federation
+
+# Optional definiton of ordering in the menu (Default ordered alphabetically)
+md-validator.federationOrder[0]=prod
+md-validator.federationOrder[1]=qa
+md-validator.federationOrder[2]=sandbox
+
+# Service TLS settings
+#server.ssl.key-store=${md-validator.path.prefix}/keystore/sslSnakeOil.p12
+#server.ssl.key-store-type=PKCS12
+#server.ssl.key-store-password=secret
+#server.ssl.key-password=secret
+
+#tomcat.ajp.port=8009
+#tomcat.ajp.remoteauthentication=false
+#tomcat.ajp.enabled=false
+
+# Management
+management.context-path=/manage
+management.security.enabled=false
+management.port=8008
+#management.ssl.enabled=true
+#management.ssl.key-store=${server.ssl.key-store}
+#management.ssl.key-store-password=${server.ssl.key-store-password}
+#management.ssl.key-password=${server.ssl.key-password}
+#management.ssl.key-store-type=${server.ssl.key-store-type}
+#management.ssl.key-alias=${server.ssl.key-alias}
+
+
diff --git a/validator-common/overlay/etc/metadata-validator/digg-logo.svg b/validator-common/overlay/etc/metadata-validator/digg-logo.svg
new file mode 100644
index 00000000..498b6267
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/digg-logo.svg
@@ -0,0 +1,126 @@
+
+
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/eln-logo.svg b/validator-common/overlay/etc/metadata-validator/eln-logo.svg
new file mode 100644
index 00000000..9af36f0f
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/eln-logo.svg
@@ -0,0 +1,51 @@
+
+
+
diff --git a/validator-common/overlay/etc/metadata-validator/mdcache/.placeholder b/validator-common/overlay/etc/metadata-validator/mdcache/.placeholder
new file mode 100644
index 00000000..e69de29b
diff --git a/validator-common/overlay/etc/metadata-validator/sc-logo-yob-exp.svg b/validator-common/overlay/etc/metadata-validator/sc-logo-yob-exp.svg
new file mode 100644
index 00000000..495c0ad3
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/sc-logo-yob-exp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/sc-logo-yob-notext-exp.svg b/validator-common/overlay/etc/metadata-validator/sc-logo-yob-notext-exp.svg
new file mode 100644
index 00000000..3c4527aa
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/sc-logo-yob-notext-exp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/swecon-bw-alltr.svg b/validator-common/overlay/etc/metadata-validator/swecon-bw-alltr.svg
new file mode 100644
index 00000000..44cef027
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/swecon-bw-alltr.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/swecon-bw.svg b/validator-common/overlay/etc/metadata-validator/swecon-bw.svg
new file mode 100644
index 00000000..639352dd
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/swecon-bw.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/swecon-inv.svg b/validator-common/overlay/etc/metadata-validator/swecon-inv.svg
new file mode 100644
index 00000000..0e515477
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/swecon-inv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/swecon-main.svg b/validator-common/overlay/etc/metadata-validator/swecon-main.svg
new file mode 100644
index 00000000..35565752
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/swecon-main.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/validator-common/overlay/etc/metadata-validator/swecon-outline.svg b/validator-common/overlay/etc/metadata-validator/swecon-outline.svg
new file mode 100644
index 00000000..48f80cb8
--- /dev/null
+++ b/validator-common/overlay/etc/metadata-validator/swecon-outline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file