From c8dfbc7f0b55a4f8c5238452055e5087fe46d675 Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Mon, 22 Aug 2022 17:10:28 +0200
Subject: feat(core): add default error-handler to show custom error-page on
any error
---
.../core/controller/DefaultErrorController.java | 75 ++++++++++++++
.../main/resources/specific_eIDAS_core.beans.xml | 3 +
.../src/main/resources/application.properties | 2 +-
.../main/resources/properties/messages.properties | 4 +
.../resources/properties/messages_de.properties | 5 +-
.../src/main/resources/application.properties | 2 +-
.../main/resources/properties/messages.properties | 112 +-------------------
.../resources/properties/messages_de.properties | 113 +--------------------
8 files changed, 94 insertions(+), 222 deletions(-)
create mode 100644 modules/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/controller/DefaultErrorController.java
diff --git a/modules/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/controller/DefaultErrorController.java b/modules/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/controller/DefaultErrorController.java
new file mode 100644
index 00000000..a9944674
--- /dev/null
+++ b/modules/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/controller/DefaultErrorController.java
@@ -0,0 +1,75 @@
+package at.asitplus.eidas.specific.core.controller;
+
+import java.io.IOException;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.servlet.error.ErrorController;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import at.gv.egiz.eaaf.core.api.data.EaafConstants;
+import at.gv.egiz.eaaf.core.api.idp.auth.services.IProtocolAuthenticationService;
+import at.gv.egiz.eaaf.core.exceptions.EaafException;
+import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractController;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Default error handler for any request that is not part of MS-eIDAS-Node.
+ *
+ * @author tlenz
+ *
+ */
+@Slf4j
+@Controller
+public class DefaultErrorController extends AbstractController implements ErrorController {
+
+ private static final String INTERNAL_97 = "internal.97";
+ private static final String INTERNAL_96 = "internal.96";
+
+ @Autowired(required = true)
+ protected IProtocolAuthenticationService protAuthService;
+
+ /**
+ * generic error-handler for any error that is not handled otherwise.
+ *
+ * @param req Current HTTP request
+ * @param resp Current HTTP response
+ * @throws IOException In case of an internal error
+ */
+ @RequestMapping(EaafConstants.ENDPOINT_PREFIX_PUBLIC + "/error")
+ public void handleGenericErrors(final HttpServletRequest req, final HttpServletResponse resp)
+ throws IOException {
+ final Object status = req.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
+
+ if (status != null) {
+ final Integer statusCode = Integer.valueOf(status.toString());
+ if (statusCode == HttpStatus.NOT_FOUND.value()) {
+ forwardToCentralErrorHandling(new EaafException(INTERNAL_97), req, resp);
+ return;
+
+ }
+ }
+
+ forwardToCentralErrorHandling(new EaafException(INTERNAL_96), req, resp);
+
+ }
+
+ private void forwardToCentralErrorHandling(Throwable e, HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ try {
+ protAuthService.handleErrorNoRedirect(e, req, resp, false);
+
+ } catch (final EaafException e1) {
+ log.warn("ErrorHandling failed with error: ", e.getMessage(), e);
+ log.warn("Can NOT handle an 'EAAFException'. Forwarding to generic error ... ", e);
+ ioExceptionHandler(resp, e);
+
+ }
+ }
+
+}
diff --git a/modules/core_common_webapp/src/main/resources/specific_eIDAS_core.beans.xml b/modules/core_common_webapp/src/main/resources/specific_eIDAS_core.beans.xml
index af3594a5..04694ef1 100644
--- a/modules/core_common_webapp/src/main/resources/specific_eIDAS_core.beans.xml
+++ b/modules/core_common_webapp/src/main/resources/specific_eIDAS_core.beans.xml
@@ -28,6 +28,9 @@
+
+
diff --git a/ms_specific_connector/src/main/resources/application.properties b/ms_specific_connector/src/main/resources/application.properties
index 1a245851..5a68e29a 100644
--- a/ms_specific_connector/src/main/resources/application.properties
+++ b/ms_specific_connector/src/main/resources/application.properties
@@ -25,7 +25,7 @@ management.endpoints.web.exposure.include=health,info
eidas.ms.context.url.request.validation=false
#eidas.ms.configRootDir=file:/.../config/
eidas.ms.context.use.clustermode=true
-eidas.ms.core.logging.level.info.errorcodes=auth.21
+eidas.ms.core.logging.level.info.errorcodes=auth.21,internal.96,internal.97
##Monitoring
eidas.ms.monitoring.eIDASNode.metadata.url=
diff --git a/ms_specific_connector/src/main/resources/properties/messages.properties b/ms_specific_connector/src/main/resources/properties/messages.properties
index cc60cd6e..848be229 100644
--- a/ms_specific_connector/src/main/resources/properties/messages.properties
+++ b/ms_specific_connector/src/main/resources/properties/messages.properties
@@ -10,6 +10,10 @@ gui.errorpage.msg.errorcode=Error Code:
gui.errorpage.msg.errormsg=Error Message:
gui.errorpage.msg.stacktrace=Stacktrace:
+internal.96=Your are at Austrian eIDAS Service implementation and the requested page is only available during authentication by using the eIDAS framework.
+internal.97=Your are at Austrian eIDAS Service implementation and the requested page does not exist.
+
+
##Country-Selection page
gui.countryselection.title=eIDAS-Login Countryselection
gui.countryselection.logo.bmi.alt=Logo BMI
diff --git a/ms_specific_connector/src/main/resources/properties/messages_de.properties b/ms_specific_connector/src/main/resources/properties/messages_de.properties
index 6f470ea0..31733497 100644
--- a/ms_specific_connector/src/main/resources/properties/messages_de.properties
+++ b/ms_specific_connector/src/main/resources/properties/messages_de.properties
@@ -10,6 +10,9 @@ gui.errorpage.msg.errorcode=Fehlercode :
gui.errorpage.msg.errormsg=Fehlermeldung:
gui.errorpage.msg.stacktrace=Stacktrace:
+internal.96=Sie befinden sich am österreichischen eIDAS Service und die von Ihnen aufgerufene Seite kann nur im Zuge eines Anmeldeprozesses via eIDAS Netzwerk aufgerufen werden.
+internal.97=Sie befinden sich am österreichischen eIDAS Service und die von Ihnen aufgerufene Seite existiert nicht.
+
##Country-Selection page
gui.countryselection.title=eIDAS-Login Länderauswahl
gui.countryselection.logo.bmi.alt=Logo BMI
@@ -126,4 +129,4 @@ gui.residency.input.postleitzahl=PLZ
gui.residency.input.municipality=Gemeinde
gui.residency.input.village=Ortschaft
gui.residency.input.street=Straße
-gui.residency.input.number=Nummer
\ No newline at end of file
+gui.residency.input.number=Nummer
diff --git a/ms_specific_proxyservice/src/main/resources/application.properties b/ms_specific_proxyservice/src/main/resources/application.properties
index ce4370a1..a3df8f90 100644
--- a/ms_specific_proxyservice/src/main/resources/application.properties
+++ b/ms_specific_proxyservice/src/main/resources/application.properties
@@ -26,7 +26,7 @@ management.endpoints.web.exposure.include=health,info
eidas.ms.context.url.request.validation=false
#eidas.ms.configRootDir=file:/.../config/
eidas.ms.context.use.clustermode=true
-eidas.ms.core.logging.level.info.errorcodes=auth.21
+eidas.ms.core.logging.level.info.errorcodes=auth.21,internal.96,internal.97
##Monitoring
eidas.ms.monitoring.eIDASNode.metadata.url=
diff --git a/ms_specific_proxyservice/src/main/resources/properties/messages.properties b/ms_specific_proxyservice/src/main/resources/properties/messages.properties
index cc60cd6e..e3aedb8a 100644
--- a/ms_specific_proxyservice/src/main/resources/properties/messages.properties
+++ b/ms_specific_proxyservice/src/main/resources/properties/messages.properties
@@ -10,6 +10,9 @@ gui.errorpage.msg.errorcode=Error Code:
gui.errorpage.msg.errormsg=Error Message:
gui.errorpage.msg.stacktrace=Stacktrace:
+internal.96=Your are at Austrian eIDAS Service implementation and the requested page is only available during authentication by using the eIDAS framework.
+internal.97=Your are at Austrian eIDAS Service implementation and the requested page does not exist.
+
##Country-Selection page
gui.countryselection.title=eIDAS-Login Countryselection
gui.countryselection.logo.bmi.alt=Logo BMI
@@ -17,112 +20,3 @@ gui.countryselection.link.bmi=Mainpage BMI
gui.countryselection.header1=Federal Ministry of Internal Affairs
gui.countryselection.header2=Austrian Central eIDAS Node
gui.countryselection.header3=Operated by Federal Ministry of Internal Affairs
-gui.countryselection.header.selection=Select your country
-gui.countryselection.cancel=Cancel
-gui.countryselection.notsupportedinfo=If you cannot find your country in this list then your electronic identity (eID) is not yet supported.
-
-gui.countryselection.infos.general.header=Information on Logins with European eIDs
-gui.countryselection.infos.general.link.1=eIDAS regulation of the European Union
-gui.countryselection.infos.general.link.2=Austrian Supplementary Register for Natural Persons (ERnP)
-gui.countryselection.infos.general.part.1=This is the central eIDAS node of the Republic of Austria, operated by the
-gui.countryselection.infos.general.part.2=It enables logins at Austrian online services using an electronic identity (eID) of another EU member state. You have been redirected to this page, as you have initiated a login to an online service using the option "EU Login".
-gui.countryselection.infos.general.part.3=The central eIDAS node of the Republic of Austria allows you to login to Austrian online services using the eID of your home country. This way, compliance with the
-gui.countryselection.infos.general.part.4=, which regulates the mutual cross-border acceptance of national eIDs, is achieved. The mutual cross-border acceptance of national eIDs is implemented successively within the EU. Currently, the central eIDAS node of the Republic of Austria supports logins using the eID systems of the Member States mentioned above. More Member States will be added according to availability of their respective eID solutions.
-gui.countryselection.infos.general.part.5=After selecting your home country on this page, you are forwarded to the familiar login environment of the selected member state. There, you can login with your eID as usual. After successful completion of the login process, you are automatically forwarded and logged in to the online service, from which you have been redirected to this page. During your first login, your eID data is also registered in the
-gui.countryselection.infos.general.part.6=This ensures that you will also be successfully and uniquely identified in subsequent logins at Austrian online services.
-
-gui.countryselection.country.be=Belgium
-gui.countryselection.country.be.logo.alt=Belgium-eID
-gui.countryselection.country.hr=Croatia
-gui.countryselection.country.hr.logo.alt=Croatia-eID
-gui.countryselection.country.cy=Cyprus
-gui.countryselection.country.cy.logo.alt=Cyprus-eID
-gui.countryselection.country.cz=Czech Republic
-gui.countryselection.country.cz.logo.alt=Czech Republic-eID
-gui.countryselection.country.ee=Estonia
-gui.countryselection.country.ee.logo.alt=Estonia-eID
-gui.countryselection.country.de=Germany
-gui.countryselection.country.de.logo.alt=German-eID
-gui.countryselection.country.is=Iceland
-gui.countryselection.country.is.logo.alt=Iceland-eID
-gui.countryselection.country.it=Italy
-gui.countryselection.country.it.logo.alt=Italy-eID
-gui.countryselection.country.li=Lichtenstein
-gui.countryselection.country.li.logo.alt=Lichtensteinische-eID
-gui.countryselection.country.lt=Lithuania
-gui.countryselection.country.lt.logo.alt=Lithuania-eID
-gui.countryselection.country.lv=Latvia
-gui.countryselection.country.lv.logo.alt=Latvia-eID
-gui.countryselection.country.nl=Netherlands
-gui.countryselection.country.nl.logo.alt=Netherlands-eID
-gui.countryselection.country.pl=Poland
-gui.countryselection.country.pl.logo.alt=Poland-eID
-gui.countryselection.country.pt=Portugal
-gui.countryselection.country.pt.logo.alt=Portugal-eID
-gui.countryselection.country.si=Slovenia
-gui.countryselection.country.si.logo.alt=Slovenia-eID
-gui.countryselection.country.es=SSpain
-gui.countryselection.country.es.logo.alt=Spain-eID
-
-gui.countryselection.country.bg=Bulgaria
-gui.countryselection.country.bg.logo.alt=Bulgaria-eID
-gui.countryselection.country.dk=Denmark
-gui.countryselection.country.dk.logo.alt=Denmark-eID
-gui.countryselection.country.fi=Finland
-gui.countryselection.country.fi.logo.alt=Finland-eID
-gui.countryselection.country.fr=France
-gui.countryselection.country.fr.logo.alt=France-eID
-gui.countryselection.country.gr=Greece
-gui.countryselection.country.gr.logo.alt=Greece-eID
-gui.countryselection.country.hu=Hungary
-gui.countryselection.country.hu.logo.alt=Hungary-eID
-gui.countryselection.country.ir=Ireland
-gui.countryselection.country.ir.logo.alt=Ireland-eID
-gui.countryselection.country.lu=Luxembourg
-gui.countryselection.country.lu.logo.alt=Luxembourg-eID
-gui.countryselection.country.mt=Malta
-gui.countryselection.country.mt.logo.alt=Malta-eID
-gui.countryselection.country.ro=Romania
-gui.countryselection.country.ro.logo.alt=Romania-eID
-gui.countryselection.country.sk=Slovakia
-gui.countryselection.country.sk.logo.alt=Slovakia-eID
-gui.countryselection.country.se=Sweden
-gui.countryselection.country.se.logo.alt=Sweden-eID
-gui.countryselection.country.uk=United Kingdom
-gui.countryselection.country.uk.logo.alt=United Kingdom-eID
-
-gui.countryselection.country.testcountry=TestCountry
-gui.countryselection.country.testcountry.logo.alt=Testcountry-eID
-
-gui.countryselection.mode.prod=Production
-gui.countryselection.mode.qs=QS
-gui.countryselection.mode.test=Test
-gui.countryselection.mode.dev=Development
-
-##Other Login Methods page
-gui.otherlogin.title=eIDAS-Login Other Login Methods
-gui.otherlogin.header.selection=Select an alternative login method
-gui.otherlogin.hs=Mobile Signature ("Handy-Signatur")
-gui.otherlogin.eidas=Alternative eIDAS ID
-gui.otherlogin.none=No alternative login methods
-gui.otherlogin.cancel=Cancel
-
-##Austrian Residency page
-gui.residency.title=Austrian Residency
-gui.residency.header.selection=Search for your Austrian Residency
-gui.residency.header.help=You can search for the address that you have been registered at in the past. Please enter a \
- postcode, municipality or village first to start the search.
-gui.residency.header.inputinvalid=Be sure to enter a value for Municipality or Village
-gui.residency.cancel=Cancel
-gui.residency.search=Search
-gui.residency.clear=Clear
-gui.residency.proceed=Proceed
-gui.residency.updated=Updated your input
-gui.residency.found=Found {0} results, click on one result to refine your search
-gui.residency.unique=Unique result found, please proceed
-gui.residency.error=Error on Backend Call
-gui.residency.input.postleitzahl=Postcode
-gui.residency.input.municipality=Municipality
-gui.residency.input.village=Village
-gui.residency.input.street=Street
-gui.residency.input.number=Number
\ No newline at end of file
diff --git a/ms_specific_proxyservice/src/main/resources/properties/messages_de.properties b/ms_specific_proxyservice/src/main/resources/properties/messages_de.properties
index 6f470ea0..6fdb8d6f 100644
--- a/ms_specific_proxyservice/src/main/resources/properties/messages_de.properties
+++ b/ms_specific_proxyservice/src/main/resources/properties/messages_de.properties
@@ -10,6 +10,9 @@ gui.errorpage.msg.errorcode=Fehlercode :
gui.errorpage.msg.errormsg=Fehlermeldung:
gui.errorpage.msg.stacktrace=Stacktrace:
+internal.96=Sie befinden sich am österreichischen eIDAS Service und die von Ihnen aufgerufene Seite kann nur im Zuge eines Anmeldeprozesses via eIDAS Netzwerk aufgerufen werden.
+internal.97=Sie befinden sich am österreichischen eIDAS Service und die von Ihnen aufgerufene Seite existiert nicht
+
##Country-Selection page
gui.countryselection.title=eIDAS-Login Länderauswahl
gui.countryselection.logo.bmi.alt=Logo BMI
@@ -17,113 +20,3 @@ gui.countryselection.link.bmi=Startseite BMI
gui.countryselection.header1=Bundesministerium für Inneres
gui.countryselection.header2=Zentraler eIDAS Knoten der Republik Österreich
gui.countryselection.header3=Betrieben durch das Bundesministerium für Inneres
-gui.countryselection.header.selection=Wählen Sie Ihr Land
-gui.countryselection.cancel=Abbrechen
-gui.countryselection.notsupportedinfo=Wenn Sie Ihr Land in dieser Aufzählung nicht entdecken, dann wird Ihre elektronische Identität (eID) leider noch nicht unterstützt.
-
-gui.countryselection.infos.general.header=Information zur Anmeldung über Europäische eIDs
-gui.countryselection.infos.general.link.1=eIDAS-Verordnung der Europäischen Union
-gui.countryselection.infos.general.link.2=Ergänzungsregister für natürliche Personen (ERnP)
-gui.countryselection.infos.general.part.1=Sie befinden sich am zentralen eIDAS-Knoten der Republik Österreich. Dieser wird vom Österreichischen
-gui.countryselection.infos.general.part.2=betrieben und ermöglicht eine Anmeldungen zu österreichischen Online-Anwendungen unter Verwendung einer elektronischen Identität (eID) anderer EU-Mitgliedstaaten. Sie wurden hierher weitergeleitet, da Sie in einer Online-Anwendung eine Anmeldung via EU-Login initiiert haben.
-gui.countryselection.infos.general.part.3=Der zentrale eIDAS-Knoten der Republik Österreich ermöglicht Ihnen eine Anmeldung zu österreichischen Online-Anwendungen mit der eID Ihres Herkunftsstaates. Damit werden die Vorgaben der
-gui.countryselection.infos.general.part.4=erfüllt, die eine staatenübergreifende Akzeptanz nationaler eIDs vorsieht. Die wechselseitige Anerkennung nationaler eIDs erfolgt in der EU schrittweise. Aktuell unterstützt der zentrale eIDAS-Knoten der Republik Österreich Anmeldungen mit den eID-Systemen der oben angeführten Mitgliedstaaten. Diese Liste wird laufend erweitert.
-gui.countryselection.infos.general.part.5=Nachdem Sie auf dieser Seite einen Mitgliedsstaat ausgewählt haben, werden Sie an die gewohnte Anmeldeumgebung des jeweiligen Mitgliedsstaats weitergeleitet. Dort können Sie sich mit Ihrer eID wie gewohnt anmelden. Haben Sie den Anmeldeprozess erfolgreich abgeschlossen, werden Sie automatisch an die Online-Anwendung, von der aus Sie auf diese Auswahlseite gelangt sind, weitergeleitet und dort mit den Identitätsdaten Ihrer eID angemeldet. Gleichzeitig werden Sie bei Ihrer ersten Anmeldung auf diesem Weg mit Ihren eID-Daten in das österreichische
-gui.countryselection.infos.general.part.6=eingetragen. Damit wird sichergestellt, dass Sie auch im Rahmen zukünftiger Anmeldeprozesse zu österreichischen Online-Anwendungen erfolgreich und eindeutig identifiziert werden können.
-
-
-gui.countryselection.country.be=Belgien
-gui.countryselection.country.be.logo.alt=Belgische-eID
-gui.countryselection.country.hr=Kroatien
-gui.countryselection.country.hr.logo.alt=Kroatische-eID
-gui.countryselection.country.cy=Zypern
-gui.countryselection.country.cy.logo.alt=Zypriotische-eID
-gui.countryselection.country.cz=Tschechische Republik
-gui.countryselection.country.cz.logo.alt=Tschechische Republik-eID
-gui.countryselection.country.ee=Estland
-gui.countryselection.country.ee.logo.alt=Estländische-eID
-gui.countryselection.country.de=Deutschland
-gui.countryselection.country.de.logo.alt=Deutsche-eID
-gui.countryselection.country.is=Island
-gui.countryselection.country.is.logo.alt=Isländische-eID
-gui.countryselection.country.it=Italien
-gui.countryselection.country.it.logo.alt=Italienische-eID
-gui.countryselection.country.li=Lichtenstein
-gui.countryselection.country.li.logo.alt=Lichtensteinische-eID
-gui.countryselection.country.lt=Litauen
-gui.countryselection.country.lt.logo.alt=Litauische-eID
-gui.countryselection.country.lv=Lettland
-gui.countryselection.country.lv.logo.alt=Lettländische-eID
-gui.countryselection.country.nl=Niederlande
-gui.countryselection.country.nl.logo.alt=Niederländische-eID
-gui.countryselection.country.pl=Polen
-gui.countryselection.country.pl.logo.alt=Polnische-eID
-gui.countryselection.country.pt=Portugal
-gui.countryselection.country.pt.logo.alt=Portugisische-eID
-gui.countryselection.country.si=Slovenien
-gui.countryselection.country.si.logo.alt=Slovenische-eID
-gui.countryselection.country.es=Spanien
-gui.countryselection.country.es.logo.alt=Spanische-eID
-
-gui.countryselection.country.bg=Bulgarien
-gui.countryselection.country.bg.logo.alt=Bulgarische-eID
-gui.countryselection.country.dk=Dänemark
-gui.countryselection.country.dk.logo.alt=Dänische-eID
-gui.countryselection.country.fi=Finnland
-gui.countryselection.country.fi.logo.alt=Finische-eID
-gui.countryselection.country.fr=Frankreich
-gui.countryselection.country.fr.logo.alt=Französiche-eID
-gui.countryselection.country.gr=Grichenland
-gui.countryselection.country.gr.logo.alt=Grichische-eID
-gui.countryselection.country.hu=Ungarn
-gui.countryselection.country.hu.logo.alt=Ungarische-eID
-gui.countryselection.country.ir=Irland
-gui.countryselection.country.ir.logo.alt=Irische-eID
-gui.countryselection.country.lu=Luxenburg
-gui.countryselection.country.lu.logo.alt=Luxenburgische-eID
-gui.countryselection.country.mt=Malta
-gui.countryselection.country.mt.logo.alt=Malta-eID
-gui.countryselection.country.ro=Romänien
-gui.countryselection.country.ro.logo.alt=Romänische-eID
-gui.countryselection.country.sk=Slovakei
-gui.countryselection.country.sk.logo.alt=Slovakische-eID
-gui.countryselection.country.se=Schweden
-gui.countryselection.country.se.logo.alt=Schwedische-eID
-gui.countryselection.country.uk=Großbritanien
-gui.countryselection.country.uk.logo.alt=Britische-eID
-
-gui.countryselection.country.testcountry=Testland
-gui.countryselection.country.testcountry.logo.alt=Testland-eID
-
-gui.countryselection.mode.prod=Produktion
-gui.countryselection.mode.qs=Qualitätsicherung
-gui.countryselection.mode.test=Test
-gui.countryselection.mode.dev=Development
-
-##Other Login Methods page
-gui.otherlogin.title=eIDAS-Login Alternative Anmeldemethoden
-gui.otherlogin.header.selection=Wählen Sie eine alternative Anmeldemethode
-gui.otherlogin.hs=Handy-Signatur
-gui.otherlogin.eidas=Alternativer eIDAS Login
-gui.otherlogin.none=Keine
-gui.otherlogin.cancel=Abbrechen
-
-##Austrian Residency page
-gui.residency.title=Österreichischer Wohnsitz
-gui.residency.header.selection=Suche nach Österreichischem Wohnsitz
-gui.residency.header.help=Hier können Sie nach einem Wohnsitze in Österreich suchen. Bitte geben Sie zuerst eine \
- Postleitzahl, Gemeinde oder Ortschaft ein um die Suche zu starten.
-gui.residency.header.inputinvalid=Bitte geben Sie einen Wert für Gemeinde oder Ortschaft ein
-gui.residency.cancel=Abbrechen
-gui.residency.search=Suche
-gui.residency.clear=Löschen
-gui.residency.proceed=Fortfahren
-gui.residency.updated=Eingabe aktualisiert
-gui.residency.found={0} Ergebnisse gefunden, klicken Sie auf ein Ergebnis um die Suche zu verfeinern
-gui.residency.unique=Eindeutiges Ergebnis gefunden, bitte fortfahren
-gui.residency.error=Fehler bei Addresssuche
-gui.residency.input.postleitzahl=PLZ
-gui.residency.input.municipality=Gemeinde
-gui.residency.input.village=Ortschaft
-gui.residency.input.street=Straße
-gui.residency.input.number=Nummer
\ No newline at end of file
--
cgit v1.2.3