diff --git a/.hgtags b/.hgtags
index d706984..d872bae 100644
--- a/.hgtags
+++ b/.hgtags
@@ -96,3 +96,5 @@ cb306bc9c833171c91c68c53af88889159e251bc eumw-3.1.0-RC2
2a5a673eec7f98bb6c01d06ead7dea24afa921fc eumw-3.1.0-RC5
37226259f9f45fb2dfd85e010b4dffe8875e52fc eumw-3.1.0-RC6
147895b9dbe033030c2f31e52e6f8ff265e3a8a0 eumw-3.1.0-RC7
+dbb0aaf15106841268b424e0a5a0b3b46bb7836d eumw-3.1.0
+6a60d2f37150a5fbf7551ae868bc1d6074ccc8fd eumw-3.1.1-RC1
diff --git a/configuration-migration/pom.xml b/configuration-migration/pom.xml
index 510c757..83bac1a 100644
--- a/configuration-migration/pom.xml
+++ b/configuration-migration/pom.xml
@@ -3,7 +3,7 @@
eumwde.governikus.eumw
- 3.1.0
+ 3.1.14.0.0
diff --git a/databasemigration/pom.xml b/databasemigration/pom.xml
index 5a421ae..7947a48 100644
--- a/databasemigration/pom.xml
+++ b/databasemigration/pom.xml
@@ -14,7 +14,7 @@
eumwde.governikus.eumw
- 3.1.0
+ 3.1.1database-migration
diff --git a/distribution/pom.xml b/distribution/pom.xml
index c27fb3f..128e804 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -15,11 +15,11 @@
de.governikus.eumweumw
- 3.1.0
+ 3.1.1distribution
- 3.1.0
+ 3.1.1pom
diff --git a/doc/source/chapter/Changelog.rst b/doc/source/chapter/Changelog.rst
index a7c941b..72e674d 100644
--- a/doc/source/chapter/Changelog.rst
+++ b/doc/source/chapter/Changelog.rst
@@ -231,3 +231,7 @@ Changelog
- eIDAS Middleware: SAML redirect binding has been added.
- eIDAS Middleware: Added support for the natural person attribute 'Nationality'.
+* 3.1.1
+
+ - eIDAS Middleware: Update identglue and fix behaviour for mobile use.
+ - eIDAS Middleware: Add the shibboleth repository to pom.xml
diff --git a/doc/source/chapter/Operating.rst b/doc/source/chapter/Operating.rst
index 9ba068c..22a3a04 100644
--- a/doc/source/chapter/Operating.rst
+++ b/doc/source/chapter/Operating.rst
@@ -347,41 +347,6 @@ Trap prefix = |TRAP_PREFIX|
|RSC_TRAP_NEW_PENDING_CERTIFICATE|; A new pending Request Signer Certificate has been generated; Certificate information (OCTET STRING)
-.. _database_migration:
-
-Migration Instructions
-----------------------
-In version 1.0.3 the database schema was changed to improve the handling of productive Black Lists.
-This means that you must perform a database migration when you want to upgrade a previous eIDAS Middleware Application
-to version 1.0.3 and later.
-
-The database migration tool is included in every release and can be found on github.
-
-The database migration tool needs to be configured before performing the migration.
-Because this tool uses Spring Boot as well, the configuration is done in the ``application.properties`` file that must
-be present either in the working directory or in a subdirectory of the working directory called ``config``.
-The configuration file must contain the following values. The first three values can be copied from
-the ``application.properties`` file that is used for the eIDAS Middleware Application. ::
-
- spring.datasource.url=
- spring.datasource.username=
- spring.datasource.password=
- spring.datasource.driver-class-name=org.h2.Driver
- spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
- spring.jpa.hibernate.ddl-auto=update
- spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
- spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
-
-Before running the migration tool, please create a backup of your database.
-Stop the eIDAS Middleware Application and copy the database file to your backup location,
-e.g. ``cp /opt/eidas-middleware/database/eidasmw.mv.db /path/to/your/backup-location/eidasmw.mv.db``.
-
-To perform the migration, copy the database migration JAR file to the directory where your
-configuration file is available and execute the command ``java -jar database-migration-3.1.0.jar``.
-If there are errors in the log output, please send the complete log output and some information on your environment to
-eidas-middleware@governikus.com.
-
-
Test mode
---------
diff --git a/doc/source/conf.py b/doc/source/conf.py
index e33cfc6..edc20fe 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -55,9 +55,9 @@
# built documents.
#
# The short X.Y version.
-version = '3.1.0'
+version = '3.1.1'
# The full version, including alpha/beta/rc tags.
-release = '3.1.0'
+release = '3.1.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/eidas-base-container/pom.xml b/eidas-base-container/pom.xml
index fd22bc3..9e89517 100644
--- a/eidas-base-container/pom.xml
+++ b/eidas-base-container/pom.xml
@@ -14,7 +14,7 @@
eumwde.governikus.eumw
- 3.1.0
+ 3.1.1eidas-base-container
diff --git a/eidas-common/pom.xml b/eidas-common/pom.xml
index 9d63fb2..f208a0c 100644
--- a/eidas-common/pom.xml
+++ b/eidas-common/pom.xml
@@ -14,7 +14,7 @@
de.governikus.eumweumw
- 3.1.0
+ 3.1.1eidas-common
diff --git a/eidas-demo/pom.xml b/eidas-demo/pom.xml
index 2c34779..cde358f 100644
--- a/eidas-demo/pom.xml
+++ b/eidas-demo/pom.xml
@@ -14,7 +14,7 @@
de.governikus.eumweumw
- 3.1.0
+ 3.1.1eidas-demo
diff --git a/eidas-middleware/pom.xml b/eidas-middleware/pom.xml
index 4e44157..ce60eb8 100644
--- a/eidas-middleware/pom.xml
+++ b/eidas-middleware/pom.xml
@@ -14,7 +14,7 @@
de.governikus.eumweumw
- 3.1.0
+ 3.1.1eidas-middleware
@@ -67,6 +67,10 @@
spring-boot-starter-data-jpa
+
+ org.webjars.npm
+ ausweisapp2__identglue
+ com.h2database
diff --git a/eidas-middleware/src/main/resources/i18n/messages_de.properties b/eidas-middleware/src/main/resources/i18n/messages_de.properties
index 3153142..756b895 100644
--- a/eidas-middleware/src/main/resources/i18n/messages_de.properties
+++ b/eidas-middleware/src/main/resources/i18n/messages_de.properties
@@ -20,6 +20,7 @@ content.requirements.device=2. Ein Kartenlesegerät, iOS- oder Android-Mobilger
content.requirements.device.hint=Eine Übersicht geeigneter Kartenlesegeräte oder mobiler Geräte finden Sie unter https://www.ausweisapp.bund.de (Kartenlesegerät / Smartphones / Tablets)
content.requirements.app=3. Die AusweisApp2
content.requirements.app.hint=Um den Vorgang fortzusetzen, muss die AusweisApp2 gestartet sein Diese können Sie kostenlos hier herunterladen: Zur Downloadseite
+content.requirements.app.hint.mobile=Zuerst muss die mobile App installiert werden:
content.help=
ⓘ Woran erkenne ich, ob die Online-Ausweisfunktion freigeschaltet ist?
Die AusweisApp2 teilt Ihnen mit, wenn dies bei Ihnen nicht der Fall sein sollte. Sie können die Online-Ausweisfunktion bei Ihrer für die Ausgabe Ihres Ausweisdokumentes zuständigen Behörde freischalten lassen.
content.help.link=Nähere Informationen zum Start der AusweisApp2 finden Sie in der Online-Hilfe.
content.start=Verstanden, jetzt online ausweisen →
diff --git a/eidas-middleware/src/main/resources/i18n/messages_en.properties b/eidas-middleware/src/main/resources/i18n/messages_en.properties
index f97ded0..21338cc 100644
--- a/eidas-middleware/src/main/resources/i18n/messages_en.properties
+++ b/eidas-middleware/src/main/resources/i18n/messages_en.properties
@@ -19,6 +19,7 @@ content.requirements.device=2. A card reader, Android or iOS device for direct r
content.requirements.device.hint=An overview of suitable card readers or mobile devices can be found at https://www.ausweisapp.bund.de/en (card reader / smartphones / tablets)
content.requirements.app=3. The AusweisApp2
content.requirements.app.hint=To continue the identification process the AusweisApp2 must be running The App can be downloaded for free here: To download page
+content.requirements.app.hint.mobile=First install the AusweisApp2 on your device:
content.help=
ⓘ How can I tell if the online ID function is activated?
The AusweisApp2 will inform you if this is not the case. You can have the online ID function enabled by the authority responsible for issuing your ID document.
content.help.link=Find further information on starting of AusweisApp2 on the help pages.
content.start=Understood, identify online now →
diff --git a/eidas-middleware/src/main/resources/static/js/identglue-1.0.4.umd.js b/eidas-middleware/src/main/resources/static/js/identglue-1.0.4.umd.js
deleted file mode 100644
index a0aba28..0000000
--- a/eidas-middleware/src/main/resources/static/js/identglue-1.0.4.umd.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e||self).AusweisApp2={})}(this,function(e){function t(){if(navigator.userAgentData)return navigator.userAgentData.mobile;let e=!1;var t;return t=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0),e}function n(){let e=!1;return null!=navigator.vendor&&(e="Apple Computer, Inc."===navigator.vendor&&-1!==navigator.userAgent.indexOf("Safari")),e}const i="http://127.0.0.1:24727/eID-Client",o="eid://127.0.0.1:24727/eID-Client";function r(e){let n=e&&e.mobile;void 0===n&&(n=t());let r=n?o:i;if(void 0===e)return r;if("object"!=typeof e)throw new TypeError("Argument options must be an object.");if("connect"===e.action){if("string"!=typeof e.tcTokenURL)throw new TypeError("Value options.tcTokenURL must be a string.");return`${r}?tcTokenURL=${encodeURIComponent(e.tcTokenURL)}`}return"status"===e.action?`${r}?Status${!0===e.json?"=json":""}`:"showui"===e.action?`${r}?ShowUI${"string"==typeof e.module?"="+encodeURIComponent(e.module):""}`:r}const a=function(){try{function e(e,t){return{status:e,details:t}}const t=r({action:"status",json:!0,mobile:!1});return Promise.resolve(function(n,i){try{var o=Promise.resolve(fetch(t)).then(function(t){return 200!==t.status?e("unavailable",null):Promise.resolve(t.json().then(e=>function(e){return e&&"object"==typeof e?{implementationTitle:e["Implementation-Title"],implementationVendor:e["Implementation-Vendor"],implementationVersion:e["Implementation-Version"],name:e.Name,specificationTitle:e["Specification-Title"],specificationVendor:e["Specification-Vendor"],specificationVersion:e["Specification-Version"]}:null}(e),()=>null)).then(function(t){return e("available",t)})})}catch(e){return i(e)}return o&&o.then?o.then(void 0,i):o}(0,function(t){return t instanceof TypeError&&"Not allowed to request resource"===t.message?e("unknown",null):e("unavailable",null)}))}catch(n){return Promise.reject(n)}};var s=0;function c(e){return"__private_"+s+++"_"+e}function l(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}var u=Object.prototype.hasOwnProperty;function d(e,t){var n,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((i=e.length)===t.length)for(;i--&&d(e[i],t[i]););return-1===i}if(!n||"object"==typeof e){for(n in i=0,e){if(u.call(e,n)&&++i&&!u.call(t,n))return!1;if(!(n in t)||!d(e[n],t[n]))return!1}return Object.keys(t).length===i}}return e!=e&&t!=t}var h=/*#__PURE__*/c("options"),m=/*#__PURE__*/c("onStatusChangeCallback"),f=/*#__PURE__*/c("nextFocusRefresh"),p=/*#__PURE__*/c("refreshTimer"),v=/*#__PURE__*/c("status"),b=/*#__PURE__*/c("updateStatus"),w=/*#__PURE__*/c("handleFocus"),g=/*#__PURE__*/c("startPolling");function y(e){d(l(this,v)[v],e)||(l(this,v)[v]=e,l(this,m)[m].call(this,e))}e.ClientURLMobile=o,e.ClientURLStationary=i,e.StationaryStatusObserver=class{get status(){return l(this,v)[v]}constructor(e,t){if(Object.defineProperty(this,b,{value:y}),Object.defineProperty(this,h,{writable:!0,value:void 0}),Object.defineProperty(this,m,{writable:!0,value:void 0}),Object.defineProperty(this,f,{writable:!0,value:0}),Object.defineProperty(this,p,{writable:!0,value:0}),Object.defineProperty(this,v,{writable:!0,value:null}),Object.defineProperty(this,w,{writable:!0,value:()=>{const e=Date.now();l(this,h)[h].refreshOnFocus&&e>l(this,f)[f]&&(l(this,f)[f]=e+l(this,h)[h].focusThrottleInterval,this.refresh())}}),Object.defineProperty(this,g,{writable:!0,value:()=>{const e=()=>{-1!==l(this,p)[p]&&(l(this,p)[p]=window.setTimeout(t,l(this,h)[h].refreshInterval))},t=()=>{l(this,h)[h].refreshWhenHidden||"hidden"!==document.visibilityState?this.refresh().then(e):e()};t()}}),l(this,h)[h]={refreshInterval:1e4,refreshWhenHidden:!1,refreshOnFocus:!0,focusThrottleInterval:5e3,...t},"function"!=typeof e)throw new TypeError("onStatusChange argument must be a function.");l(this,m)[m]=e}observe(){t()?l(this,b)[b]({status:"unknown",details:null}):n()?l(this,b)[b]({status:"safari",details:null}):(l(this,h)[h].refreshInterval>0&&l(this,g)[g](),l(this,h)[h].refreshOnFocus&&window.addEventListener("focus",l(this,w)[w]))}unobserve(){l(this,p)[p]&&(window.clearTimeout(l(this,p)[p]),l(this,p)[p]=-1),l(this,h)[h].refreshOnFocus&&window.removeEventListener("focus",l(this,w)[w])}refresh(){try{const e=this;return Promise.resolve(a()).then(function(t){l(e,b)[b](t)})}catch(e){return Promise.reject(e)}}},e.getClientURL=r,e.getStationaryStatus=a,e.isChromeOS=function(){let e=!1;return null!=navigator.vendor&&(e="Google Inc."===navigator.vendor&&/CrOS/.test(navigator.userAgent)),e},e.isMobile=t,e.isSafari=n,e.observeEIDLink=function(e,t){const n=e.href;let i=0,o=!1,r=!1;function a(){o=!1,t()}window.addEventListener("blur",()=>{o&&(r=!0,i&&(window.clearTimeout(i),i=0))}),window.addEventListener("focus",()=>{o&&r&&window.setTimeout(a,0)}),document.addEventListener("visibilitychange",()=>{o&&"hidden"===document.visibilityState&&(o=!1)}),e.addEventListener("click",e=>{e.preventDefault(),r=!1,o=!0,i=window.setTimeout(()=>{document.hasFocus(),o&&!r&&a()},1e3),location.assign(n)})}});
-//# sourceMappingURL=identglue-1.0.4.umd.js
diff --git a/eidas-middleware/src/main/resources/static/js/useIdentGlue.js b/eidas-middleware/src/main/resources/static/js/useIdentGlue.js
index 2373465..3eeba0f 100644
--- a/eidas-middleware/src/main/resources/static/js/useIdentGlue.js
+++ b/eidas-middleware/src/main/resources/static/js/useIdentGlue.js
@@ -9,29 +9,27 @@
*/
$(function () {
- // Stationary Status
- const observer = new AusweisApp2.StationaryStatusObserver((status) => {
- console.log("new status", status);
- if (status.status === "available") {
- $("#client-inactive").attr("hidden", "hidden");
- $("#client-active").removeAttr("hidden");
- } else if (status.status === "safari") {
- $("#client-inactive").attr("hidden", "hidden");
- $("#client-active").attr("hidden", "hidden");
- } else {
- $("#client-active").attr("hidden", "hidden");
- $("#client-inactive").removeAttr("hidden");
- }
- });
- observer.observe();
- if (observer.isMobile) {
+
+ if (AusweisApp2.isMobile()) {
$("#goToAa2").attr("href", getEIDLink(true));
- // Mobile
- AusweisApp2.observeEIDLink($("#identGlueMobileLink")[0], () => {
- console.log("App not installed?");
- $("#eid-install-app-hint").removeAttr("hidden");
- });
+ $("#eid-install-app-hint").removeAttr("hidden");
+ $("#eid-install-stationary").attr("hidden", "hidden");
} else {
+ // Stationary Status
+ const observer = new AusweisApp2.StationaryStatusObserver((status) => {
+ console.log("new status", status);
+ if (status.status === "available") {
+ $("#client-inactive").attr("hidden", "hidden");
+ $("#client-active").removeAttr("hidden");
+ } else if (status.status === "safari") {
+ $("#client-inactive").attr("hidden", "hidden");
+ $("#client-active").attr("hidden", "hidden");
+ } else {
+ $("#client-active").attr("hidden", "hidden");
+ $("#client-inactive").removeAttr("hidden");
+ }
+ });
+ observer.observe();
$("#goToAa2").attr("href", getEIDLink(false));
}
});
diff --git a/eidas-middleware/src/main/resources/templates/middleware.html b/eidas-middleware/src/main/resources/templates/middleware.html
index 8d12763..34c579d 100644
--- a/eidas-middleware/src/main/resources/templates/middleware.html
+++ b/eidas-middleware/src/main/resources/templates/middleware.html
@@ -26,7 +26,9 @@
-
+
+
+
@@ -115,16 +117,14 @@