From 665b45fb419a7dedc20de62ec0e1c6d550b7f3bd Mon Sep 17 00:00:00 2001 From: Dominik Frantisek Bucik Date: Tue, 30 Nov 2021 11:02:39 +0100 Subject: [PATCH] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20Refactored=20how=20t?= =?UTF-8?q?ranslations=20are=20loaded=20and=20used?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refactor how translations are used and loaded. Property `web.langs.customfiles.path` must point to the RersourceBundle, without the `_lang.properties" extensions. An examle location, if we have files `/etc/props_en.properties` and `/etc/props_cs.properties`, the correct value for the configuration option is `web.langs.customfiles.path=/etc/props`. BREAKING CHANGE: Property `web.langs.customfiles.path` must point to the RersourceBundle. --- .../{cs.properties => messages_cs.properties} | 0 .../{en.properties => messages_en.properties} | 0 .../webapp/WEB-INF/application-context.xml | 7 + .../src/main/webapp/WEB-INF/locale-config.xml | 22 ++- .../webapp/WEB-INF/tags/cesnet/footer.tag | 17 +- .../WEB-INF/tags/common/attributesConsent.tag | 21 +-- .../WEB-INF/tags/common/consentButtons.tag | 5 +- .../webapp/WEB-INF/tags/einfra/footer.tag | 24 +-- .../main/webapp/WEB-INF/tags/muni/footer.tag | 5 +- .../main/webapp/WEB-INF/tags/muni/header.tag | 31 ++-- .../src/main/webapp/WEB-INF/user-context.xml | 10 +- .../src/main/webapp/WEB-INF/views/aup.jsp | 16 +- .../webapp/WEB-INF/views/continue_direct.jsp | 13 +- .../webapp/WEB-INF/views/isTestSpWarning.jsp | 14 +- .../webapp/WEB-INF/views/login_failure.jsp | 10 +- .../webapp/WEB-INF/views/login_success.jsp | 8 +- .../src/main/webapp/WEB-INF/views/logout.jsp | 11 +- .../webapp/WEB-INF/views/logout_denied.jsp | 8 +- .../webapp/WEB-INF/views/logout_success.jsp | 8 +- .../webapp/WEB-INF/views/registrationForm.jsp | 18 ++- .../views/registrationFormContinue.jsp | 15 +- .../webapp/WEB-INF/views/themedApprove.jsp | 18 ++- .../WEB-INF/views/themedApproveDevice.jsp | 11 +- .../WEB-INF/views/themedDeviceApproved.jsp | 26 +-- .../WEB-INF/views/themedRequestUserCode.jsp | 45 ++++-- .../main/webapp/WEB-INF/views/unapproved.jsp | 12 +- .../webapp/WEB-INF/views/unapproved_spec.jsp | 7 +- .../configurations/PerunOidcConfig.java | 26 ++- .../cz/muni/ics/oidc/web/WebHtmlClasses.java | 1 - .../controllers/ApproveDeviceController.java | 12 +- .../oidc/web/controllers/AupController.java | 9 +- .../oidc/web/controllers/ControllerUtils.java | 16 +- .../web/controllers/IsTestSpController.java | 7 +- .../oidc/web/controllers/LoginController.java | 9 +- .../web/controllers/LogoutController.java | 7 +- .../PerunOAuthConfirmationController.java | 6 +- .../PerunUnapprovedController.java | 149 ++++++------------ ...PerunUnapprovedRegistrationController.java | 8 +- .../controllers/RegistrationController.java | 8 +- .../muni/ics/oidc/web/langs/Localization.java | 103 ------------ .../connect/config/JsonMessageSource.java | 4 + .../connect/web/EndSessionEndpoint.java | 12 +- 42 files changed, 331 insertions(+), 428 deletions(-) rename perun-oidc-server-webapp/src/main/resources/localization/{cs.properties => messages_cs.properties} (100%) rename perun-oidc-server-webapp/src/main/resources/localization/{en.properties => messages_en.properties} (100%) delete mode 100644 perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/langs/Localization.java diff --git a/perun-oidc-server-webapp/src/main/resources/localization/cs.properties b/perun-oidc-server-webapp/src/main/resources/localization/messages_cs.properties similarity index 100% rename from perun-oidc-server-webapp/src/main/resources/localization/cs.properties rename to perun-oidc-server-webapp/src/main/resources/localization/messages_cs.properties diff --git a/perun-oidc-server-webapp/src/main/resources/localization/en.properties b/perun-oidc-server-webapp/src/main/resources/localization/messages_en.properties similarity index 100% rename from perun-oidc-server-webapp/src/main/resources/localization/en.properties rename to perun-oidc-server-webapp/src/main/resources/localization/messages_en.properties diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/application-context.xml b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/application-context.xml index dae4f464f..2bc7eaf1f 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/application-context.xml +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/application-context.xml @@ -46,7 +46,14 @@ + + + + + + + diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/locale-config.xml b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/locale-config.xml index 7f6e95dc7..1e8ec9327 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/locale-config.xml +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/locale-config.xml @@ -19,11 +19,25 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - - - + + + - + + + + + + + + + + + + + + + diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/tags/cesnet/footer.tag b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/tags/cesnet/footer.tag index e84472bb5..b9face9b7 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/tags/cesnet/footer.tag +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/tags/cesnet/footer.tag @@ -6,6 +6,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/logout_success.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/logout_success.jsp index aaed2b8aa..ef6e410ba 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/logout_success.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/logout_success.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> @@ -14,16 +15,17 @@ pageContext.setAttribute("cssLinks", cssLinks); %> - + <%-- header --%>
-
${langProps['logout_success_msg']}
+
diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationForm.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationForm.jsp index fb8af4cd3..6caad813f 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationForm.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationForm.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> @@ -17,14 +18,14 @@ cssLinks.add(samlCssUrl + "/module.php/perun/res/css/perun_identity_choose_vo_an pageContext.setAttribute("cssLinks", cssLinks); %> - - + + <%-- header --%>
-
${langProps['registration_message']}
+
-

${langProps['registration_select_vo']}

+

- + - + +
diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationFormContinue.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationFormContinue.jsp index a8bf430b9..74d4ea31b 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationFormContinue.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/registrationFormContinue.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> @@ -18,22 +19,23 @@ pageContext.setAttribute("cssLinks", cssLinks); %> - + + <%-- header --%>
@@ -42,7 +44,8 @@ pageContext.setAttribute("cssLinks", cssLinks); - +
diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApprove.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApprove.jsp index f65506dca..a015abbb1 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApprove.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApprove.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> @@ -19,20 +20,23 @@ %> - + + -

${langProps['consent_header']} ${" "} ${fn:escapeXml(client.clientName)}

+

${" "}${fn:escapeXml(client.clientName)}

<%-- header --%>
-
+

- ${langProps['consent_privacy_policy']} - ${fn:escapeXml(client.clientName)} + ${" "} + + ${fn:escapeXml(client.clientName)} +

@@ -40,7 +44,7 @@
- +
diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApproveDevice.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApproveDevice.jsp index 9c78e5cc9..625d08612 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApproveDevice.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedApproveDevice.jsp @@ -5,6 +5,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> @@ -21,10 +22,11 @@ %> - + + -

${langProps['device_approve_header']} ${" "} ${fn:escapeXml(client.clientName)}

+

${" "} ${fn:escapeXml(client.clientName)}

<%-- header --%> @@ -34,8 +36,7 @@ action="${ config.issuer }${ config.issuer.endsWith('/') ? '' : '/' }device/approve" method="post">

- ${langProps['device_approve_privacy']} - ${fn:escapeXml(client.clientName)} + ${" "}${fn:escapeXml(client.clientName)}

diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedDeviceApproved.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedDeviceApproved.jsp index 111be0a7d..b6a04af6d 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedDeviceApproved.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedDeviceApproved.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> @@ -15,29 +16,34 @@ pageContext.setAttribute("cssLinks", cssLinks); %> - + + <%-- header --%>

-

✔ ${langProps['device_approved_approved']}

-

✗ ${langProps['device_approved_rejected']}

+

+

- ${langProps['device_approved_text_approved_start']}${" "} + ${" "} - ${" "}${langProps['device_approved_text_approved_end']} + ${" "} - ${langProps['device_approved_text_rejected_start']}${" "} - - - ${". "}${langProps['device_approved_text_rejected_end']} + + + ${" "} + + + ${" "} + + ${". "} -

+

q
<%-- wrap --%> diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedRequestUserCode.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedRequestUserCode.jsp index bc60de450..ce94d3c3d 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedRequestUserCode.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/themedRequestUserCode.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> @@ -15,41 +16,50 @@ %> - + + <%-- header --%>
-

${langProps['request_code_header']}

+

- ${langProps['user_code_empty_or_not_found']} - ${langProps['user_code_expired']} - ${langProps['user_code_already_approved']} - ${langProps['user_code_mismatch']} - ${langProps['user_code_error']} + + + + + + + + + + + + + + +

-

- ${langProps['user_code_info']} -

+

- +
- + +
@@ -57,7 +67,8 @@
- +
diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved.jsp index 49ffd8a08..bd9cd2539 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common"%> +<%@ taglib prefix="spring" uri="http://java.sun.com/jsp/jstl/fmt" %> <% @@ -25,19 +26,20 @@ pageContext.setAttribute("cssLinks", cssLinks); -

${langProps['403_header']}

-

${langProps['403_text']} ${fn:escapeXml(client.clientName)} +

+

${' '}${fn:escapeXml(client.clientName)}
- ${langProps['403_informationPage']} + ${' '} ${fn:escapeXml(client.clientUri)}

-

${langProps['403_contactSupport']} - + +

${' '} + ${fn:escapeXml(contact)}

diff --git a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved_spec.jsp b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved_spec.jsp index 6a2535752..cd9367e5c 100644 --- a/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved_spec.jsp +++ b/perun-oidc-server-webapp/src/main/webapp/WEB-INF/views/unapproved_spec.jsp @@ -4,6 +4,7 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="t" tagdir="/WEB-INF/tags/common"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <% @@ -19,9 +20,9 @@ pageContext.setAttribute("cssLinks", cssLinks);
-

-

-

${langProps['contact_p']}${" "}${contactMail}

+

+

+

${" "}${contactMail}

diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/configurations/PerunOidcConfig.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/configurations/PerunOidcConfig.java index 72354410c..7325105ba 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/configurations/PerunOidcConfig.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/server/configurations/PerunOidcConfig.java @@ -2,7 +2,9 @@ package cz.muni.ics.oidc.server.configurations; import cz.muni.ics.openid.connect.config.ConfigurationPropertiesBean; import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.Set; import javax.annotation.PostConstruct; @@ -38,9 +40,9 @@ public class PerunOidcConfig { private String perunOIDCVersion; private String proxyExtSourceName; private Set idTokenScopes; - private List availableLangs; private boolean fillMissingUserAttrs; private boolean addClientIdToAcrs = false; + private final Map languageMap = new HashMap<>(); @Autowired private ServletContext servletContext; @@ -166,12 +168,26 @@ public class PerunOidcConfig { } } - public List getAvailableLangs() { - return availableLangs; + public Set getAvailableLangs() { + return languageMap.keySet(); } public void setAvailableLangs(List availableLangs) { - this.availableLangs = availableLangs; + languageMap.clear(); + for (String lang: availableLangs) { + switch (lang.toLowerCase()) { + case "en": { + languageMap.put("en", "English"); + } break; + case "cs": { + languageMap.put("cs", "Čeština"); + } break; + } + } + } + + public Map getLanguageMap() { + return languageMap; } public String getLocalizationFilesPath() { @@ -265,7 +281,7 @@ public class PerunOidcConfig { log.info("Registrar URL: {}", registrarUrl); log.info("accessTokenClaimsModifier: {}", coreProperties.getProperty("accessTokenClaimsModifier")); log.info("Proxy EXT_SOURCE name: {}", proxyExtSourceName); - log.info("Available languages: {}", availableLangs); + log.info("Available languages: {}", languageMap.keySet()); log.info("Localization files path: {}", localizationFilesPath); log.info("Email contact: {}", emailContact); log.info("Perun OIDC version: {}", getPerunOIDCVersion()); diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/WebHtmlClasses.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/WebHtmlClasses.java index fd2ed94ac..e19fe884b 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/WebHtmlClasses.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/WebHtmlClasses.java @@ -53,7 +53,6 @@ public class WebHtmlClasses { log.debug("Loaded web html classes file: {}", customFileName); } catch (FileNotFoundException e) { log.warn("File: {} not found", customFileName); - e.printStackTrace(); } catch (IOException e) { log.warn("Exception caught when reading {}", customFileName, e); } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ApproveDeviceController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ApproveDeviceController.java index d210b8fef..923441549 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ApproveDeviceController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ApproveDeviceController.java @@ -9,7 +9,6 @@ import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.server.filters.PerunFilterConstants; import cz.muni.ics.oidc.server.userInfo.PerunUserInfo; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import cz.muni.ics.openid.connect.service.UserInfoService; import java.security.Principal; import java.util.Map; @@ -51,7 +50,6 @@ public class ApproveDeviceController { private final SystemScopeService scopeService; private final DeviceEndpoint deviceEndpoint; private final PerunOidcConfig perunOidcConfig; - private final Localization localization; private final WebHtmlClasses htmlClasses; private final PerunScopeClaimTranslationService scopeClaimTranslationService; private final UserInfoService userInfoService; @@ -60,7 +58,6 @@ public class ApproveDeviceController { public ApproveDeviceController(SystemScopeService scopeService, DeviceEndpoint deviceEndpoint, PerunOidcConfig perunOidcConfig, - Localization localization, WebHtmlClasses htmlClasses, PerunScopeClaimTranslationService scopeClaimTranslationService, UserInfoService userInfoService) @@ -68,7 +65,6 @@ public class ApproveDeviceController { this.scopeService = scopeService; this.deviceEndpoint = deviceEndpoint; this.perunOidcConfig = perunOidcConfig; - this.localization = localization; this.htmlClasses = htmlClasses; this.scopeClaimTranslationService = scopeClaimTranslationService; this.userInfoService = userInfoService; @@ -105,7 +101,7 @@ public class ApproveDeviceController { { String result = deviceEndpoint.requestUserCode(userCode, model, session); if (result.equals(REQUEST_USER_CODE) && !perunOidcConfig.getTheme().equalsIgnoreCase("default")) { - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); model.put("page", REQUEST_USER_CODE); String shibAuthnContextClass = ""; if (StringUtils.hasText(req.getParameter(ACR_VALUES))) { @@ -139,7 +135,7 @@ public class ApproveDeviceController { if (result.equals(APPROVE_DEVICE) && !perunOidcConfig.getTheme().equalsIgnoreCase("default")) { return themedApproveDevice(model, p, req); } else if (result.equals(REQUEST_USER_CODE) && !perunOidcConfig.getTheme().equalsIgnoreCase("default")) { - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); model.put("page", REQUEST_USER_CODE); return "themedRequestUserCode"; } @@ -168,7 +164,7 @@ public class ApproveDeviceController { p.getName(), client.getClientId()); ControllerUtils.setScopesAndClaims(scopeService, scopeClaimTranslationService, model, dc.getScope(), user); - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); model.put("page", DEVICE_APPROVED); return "themedDeviceApproved"; @@ -184,7 +180,7 @@ public class ApproveDeviceController { PerunUserInfo user = (PerunUserInfo) userInfoService.getByUsernameAndClientId( p.getName(), client.getClientId()); ControllerUtils.setScopesAndClaims(scopeService, scopeClaimTranslationService, model, dc.getScope(), user); - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); model.put("page", APPROVE_DEVICE); return "themedApproveDevice"; diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/AupController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/AupController.java index 61f8c8c7f..83989164a 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/AupController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/AupController.java @@ -11,7 +11,6 @@ import cz.muni.ics.oidc.models.mappers.RpcMapper; import cz.muni.ics.oidc.server.adapters.PerunAdapter; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; @@ -52,14 +51,12 @@ public class AupController { @Autowired private PerunOidcConfig perunOidcConfig; - @Autowired - private Localization localization; - @Autowired private WebHtmlClasses htmlClasses; @GetMapping(value = "/" + URL) - public String showAup(HttpServletRequest request, Map model, + public String showAup(HttpServletRequest req, + Map model, @SessionAttribute(name = NEW_AUPS) String newAupsString) throws IOException { JsonNode newAupsJson = mapper.readTree(newAupsString); @@ -72,7 +69,7 @@ public class AupController { } model.put(NEW_AUPS, newAups); - ControllerUtils.setPageOptions(model, request, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); return "aup"; } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ControllerUtils.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ControllerUtils.java index 19d7b7e43..10726600a 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ControllerUtils.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/ControllerUtils.java @@ -10,7 +10,6 @@ import cz.muni.ics.oauth2.service.SystemScopeService; import cz.muni.ics.oidc.server.PerunScopeClaimTranslationService; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import cz.muni.ics.openid.connect.model.UserInfo; import java.io.UnsupportedEncodingException; import java.net.URISyntaxException; @@ -23,7 +22,6 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.Set; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -51,12 +49,11 @@ public class ControllerUtils { * @param req request object * @param localization localization with texts */ - public static void setLanguageForPage(Map model, HttpServletRequest req, - Localization localization) { + public static void setLanguageForPage(Map model, HttpServletRequest req, PerunOidcConfig config) { String langFromParam = req.getParameter(LANG_KEY); String browserLang = req.getLocale().getLanguage(); - List enabledLangs = localization.getEnabledLanguages(); + Set enabledLangs = config.getAvailableLangs(); String langKey = "en"; if (langFromParam != null @@ -78,12 +75,9 @@ public class ControllerUtils { log.warn("Could not remove lang param"); } - Properties langProperties = localization.getLocalizationFiles().get(langKey); - model.put(LANG_KEY, langKey); model.put(REQ_URL_KEY, reqUrl); - model.put(LANGS_MAP_KEY, localization.getEntriesAvailable()); - model.put(LANG_PROPS_KEY, langProperties); + model.put(LANGS_MAP_KEY, config.getLanguageMap()); } /** @@ -131,14 +125,12 @@ public class ControllerUtils { * @param model model object * @param req request object - * @param localization localization with texts * @param classes additional html classes * @param perunOidcConfig oidc config class */ public static void setPageOptions(Map model, HttpServletRequest req, - Localization localization, WebHtmlClasses classes, PerunOidcConfig perunOidcConfig) { - setLanguageForPage(model, req, localization); + setLanguageForPage(model, req, perunOidcConfig); model.put("classes", classes.getWebHtmlClassesProperties()); model.put("theme", perunOidcConfig.getTheme().toLowerCase()); model.put("baseURL", perunOidcConfig.getBaseURL()); diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/IsTestSpController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/IsTestSpController.java index 203cabff9..294995f65 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/IsTestSpController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/IsTestSpController.java @@ -5,7 +5,6 @@ import static cz.muni.ics.oidc.server.filters.PerunFilterConstants.PARAM_TARGET; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -29,13 +28,11 @@ public class IsTestSpController { private static final String TARGET = "target"; private static final String ACTION = "action"; - private final Localization localization; private final WebHtmlClasses htmlClasses; private final PerunOidcConfig perunOidcConfig; @Autowired - public IsTestSpController(Localization localization, WebHtmlClasses htmlClasses, PerunOidcConfig perunOidcConfig) { - this.localization = localization; + public IsTestSpController(WebHtmlClasses htmlClasses, PerunOidcConfig perunOidcConfig) { this.htmlClasses = htmlClasses; this.perunOidcConfig = perunOidcConfig; } @@ -48,7 +45,7 @@ public class IsTestSpController { log.debug("Display warning page for isTestSp"); model.put(TARGET, returnUrl); model.put(ACTION, req.getRequestURL().toString()); - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); return "isTestSpWarning"; } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LoginController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LoginController.java index 411269406..46dfc2dd5 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LoginController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LoginController.java @@ -2,7 +2,6 @@ package cz.muni.ics.oidc.web.controllers; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import java.util.Map; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; @@ -17,26 +16,24 @@ public class LoginController { public static final String MAPPING_SUCCESS = "/login_success"; public static final String MAPPING_FAILURE = "/login_failure"; - private final Localization localization; private final WebHtmlClasses htmlClasses; private final PerunOidcConfig perunOidcConfig; @Autowired - public LoginController(PerunOidcConfig perunOidcConfig, Localization localization, WebHtmlClasses htmlClasses) { + public LoginController(PerunOidcConfig perunOidcConfig, WebHtmlClasses htmlClasses) { this.perunOidcConfig = perunOidcConfig; - this.localization = localization; this.htmlClasses = htmlClasses; } @RequestMapping(value = MAPPING_SUCCESS) public String loginSuccess(HttpServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); return "login_success"; } @RequestMapping(value = MAPPING_FAILURE) public String loginFailure(HttpServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); return "login_failure"; } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LogoutController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LogoutController.java index 01ae1b0ed..2da02addd 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LogoutController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/LogoutController.java @@ -2,7 +2,6 @@ package cz.muni.ics.oidc.web.controllers; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import java.util.Map; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; @@ -16,20 +15,18 @@ public class LogoutController { public static final String MAPPING_SUCCESS = "/logout_success"; - private final Localization localization; private final WebHtmlClasses htmlClasses; private final PerunOidcConfig perunOidcConfig; @Autowired - public LogoutController(PerunOidcConfig perunOidcConfig, Localization localization, WebHtmlClasses htmlClasses) { + public LogoutController(PerunOidcConfig perunOidcConfig, WebHtmlClasses htmlClasses) { this.perunOidcConfig = perunOidcConfig; - this.localization = localization; this.htmlClasses = htmlClasses; } @RequestMapping(value = MAPPING_SUCCESS) public String logoutSuccess(HttpServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); return "logout_success"; } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunOAuthConfirmationController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunOAuthConfirmationController.java index 81be9f7b7..1b38c8348 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunOAuthConfirmationController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunOAuthConfirmationController.java @@ -8,7 +8,6 @@ import cz.muni.ics.oidc.server.PerunScopeClaimTranslationService; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.server.userInfo.PerunUserInfo; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import cz.muni.ics.openid.connect.service.UserInfoService; import java.security.Principal; import java.util.Map; @@ -37,7 +36,6 @@ public class PerunOAuthConfirmationController{ private final PerunOidcConfig perunOidcConfig; private final SystemScopeService scopeService; private final PerunScopeClaimTranslationService scopeClaimTranslationService; - private final Localization localization; private final WebHtmlClasses htmlClasses; @Autowired @@ -46,7 +44,6 @@ public class PerunOAuthConfirmationController{ PerunOidcConfig perunOidcConfig, SystemScopeService scopeService, PerunScopeClaimTranslationService scopeClaimTranslationService, - Localization localization, WebHtmlClasses htmlClasses) { this.oAuthConfirmationController = oAuthConfirmationController; @@ -54,7 +51,6 @@ public class PerunOAuthConfirmationController{ this.perunOidcConfig = perunOidcConfig; this.scopeService = scopeService; this.scopeClaimTranslationService = scopeClaimTranslationService; - this.localization = localization; this.htmlClasses = htmlClasses; } @@ -71,7 +67,7 @@ public class PerunOAuthConfirmationController{ p.getName(), client.getClientId()); ControllerUtils.setScopesAndClaims(scopeService, scopeClaimTranslationService, model, authRequest.getScope(), user); - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); model.put("page", "consent"); return "themedApprove"; diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedController.java index 4f8e8c195..22108b65b 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedController.java @@ -5,13 +5,11 @@ import static cz.muni.ics.oidc.server.filters.PerunFilterConstants.PARAM_HEADER; import static cz.muni.ics.oidc.server.filters.PerunFilterConstants.PARAM_MESSAGE; import static cz.muni.ics.oidc.server.filters.PerunFilterConstants.PARAM_REASON; import static cz.muni.ics.oidc.server.filters.PerunFilterConstants.PARAM_TARGET; -import static cz.muni.ics.oidc.web.controllers.ControllerUtils.LANG_PROPS_KEY; import cz.muni.ics.oauth2.model.ClientDetailsEntity; import cz.muni.ics.oauth2.service.ClientDetailsEntityService; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import cz.muni.ics.openid.connect.view.HttpCodeView; import java.util.Map; import java.util.Properties; @@ -74,8 +72,6 @@ public class PerunUnapprovedController { private static final String NOT_LOGGED_IN_HDR = "403_not_logged_in_hdr"; private static final String NOT_LOGGED_IN_MSG = "403_not_logged_in_msg"; - private static final String CONTACT_PLACEHOLDER = "%%CONTACT_EMAIL%%"; - private static final String TARGET_URL_PLACEHOLDER = "%%TARGET%%"; private static final String CONTACT_LANG_PROP_KEY = "contact_p"; private static final String CONTACT_MAIL = "contactMail"; @@ -85,16 +81,14 @@ public class PerunUnapprovedController { @Autowired private PerunOidcConfig perunOidcConfig; - @Autowired - private Localization localization; - @Autowired private WebHtmlClasses htmlClasses; @GetMapping(value = UNAPPROVED_MAPPING) - public String showUnapproved(ServletRequest req, Map model, - @RequestParam(PARAM_CLIENT_ID) String clientId) { - HttpServletRequest request = (HttpServletRequest) req; + public String showUnapproved(HttpServletRequest req, + Map model, + @RequestParam(PARAM_CLIENT_ID) String clientId) + { ClientDetailsEntity client; try { @@ -115,171 +109,126 @@ public class PerunUnapprovedController { return HttpCodeView.VIEWNAME; } - ControllerUtils.setPageOptions(model, request, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); model.put("client", client); return "unapproved"; } @GetMapping(value = UNAPPROVED_SPECIFIC_MAPPING) - public String showUnapprovedSpec(ServletRequest req, Map model, + public String showUnapprovedSpec(HttpServletRequest req, Map model, @RequestParam(value = PARAM_HEADER, required = false) String header, - @RequestParam(value = PARAM_MESSAGE, required = false) String message) { + @RequestParam(value = PARAM_MESSAGE, required = false) String message) + { + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); - - String headerText = getText(model, header); - String messageText = getText(model, message); - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); - - model.put(OUT_HEADER, headerText); - model.put(OUT_MESSAGE, messageText); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_HEADER, header); + model.put(OUT_MESSAGE, message); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } @GetMapping(value = UNAPPROVED_IS_CESNET_ELIGIBLE_MAPPING) - public String showUnapprovedIsCesnetEligible(ServletRequest req, Map model, + public String showUnapprovedIsCesnetEligible(HttpServletRequest req, Map model, @RequestParam(value = PARAM_TARGET) String target, @RequestParam(value = PARAM_REASON) String reason) { - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); String header; String message; - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); if (REASON_EXPIRED.equals(reason)) { - header = getText(model, ICE_EXPIRED_HDR); - message = getText(model, ICE_EXPIRED_MSG); + header = ICE_EXPIRED_HDR; + message = ICE_EXPIRED_MSG; } else if (REASON_NOT_SET.equals(reason)){ - header = getText(model, ICE_NOT_SET_HDR); - message = getText(model, ICE_NOT_SET_MSG); + header = ICE_NOT_SET_HDR; + message = ICE_NOT_SET_MSG; } else { model.put(HttpCodeView.CODE, HttpStatus.NOT_FOUND); return HttpCodeView.VIEWNAME; } - header = replace(header, TARGET_URL_PLACEHOLDER, target); - message = replace(message, TARGET_URL_PLACEHOLDER, target); - model.put(OUT_HEADER, header); model.put(OUT_MESSAGE, message); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } @GetMapping(value = UNAPPROVED_ENSURE_VO_MAPPING) - public String showUnapprovedEnsureVo(ServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); + public String showUnapprovedEnsureVo(HttpServletRequest req, Map model) { + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); - String header = getText(model, ENSURE_VO_HDR); - String message = getText(model, ENSURE_VO_MSG); - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); - - model.put(OUT_HEADER, header); - model.put(OUT_MESSAGE, message); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_HEADER, ENSURE_VO_HDR); + model.put(OUT_MESSAGE, ENSURE_VO_MSG); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } @GetMapping(value = UNAPPROVED_AUTHORIZATION) - public String showUnapprovedAuthorization(ServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); + public String showUnapprovedAuthorization(HttpServletRequest req, Map model) { + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); - String header = getText(model, AUTHORIZATION_HDR); - String message = getText(model, AUTHORIZATION_MSG); - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); - - model.put(OUT_HEADER, header); - model.put(OUT_MESSAGE, message); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_HEADER, AUTHORIZATION_HDR); + model.put(OUT_MESSAGE, AUTHORIZATION_MSG); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } @GetMapping(value = UNAPPROVED_NOT_IN_TEST_VOS_GROUPS) - public String showUnapprovedNotInTestVosGroups(ServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); + public String showUnapprovedNotInTestVosGroups(HttpServletRequest req, Map model) { + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); - String header = getText(model, NOT_IN_TEST_VOS_GROUPS_HDR); - String message = getText(model, NOT_IN_TEST_VOS_GROUPS_MSG); - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); - - model.put(OUT_HEADER, header); - model.put(OUT_MESSAGE, message); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_HEADER, NOT_IN_TEST_VOS_GROUPS_HDR); + model.put(OUT_MESSAGE, NOT_IN_TEST_VOS_GROUPS_MSG); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } @GetMapping(value = UNAPPROVED_NOT_IN_PROD_VOS_GROUPS) - public String showUnapprovedNotInProdVosGroups(ServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); + public String showUnapprovedNotInProdVosGroups(HttpServletRequest req, Map model) { + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); - String header = getText(model, NOT_IN_PROD_VOS_GROUPS_HDR); - String message = getText(model, NOT_IN_PROD_VOS_GROUPS_MSG); - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); - - model.put(OUT_HEADER, header); - model.put(OUT_MESSAGE, message); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_HEADER, NOT_IN_PROD_VOS_GROUPS_HDR); + model.put(OUT_MESSAGE, NOT_IN_PROD_VOS_GROUPS_MSG); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } @GetMapping(value = UNAPPROVED_NOT_IN_MANDATORY_VOS_GROUPS) - public String showUnapprovedNotInMandatoryVosGroups(ServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); + public String showUnapprovedNotInMandatoryVosGroups(HttpServletRequest req, Map model) { + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); - String header = getText(model, NOT_IN_MANDATORY_VOS_GROUPS_HDR); - String message = getText(model, NOT_IN_MANDATORY_VOS_GROUPS_MSG); - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); - - model.put(OUT_HEADER, header); - model.put(OUT_MESSAGE, message); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_HEADER, NOT_IN_MANDATORY_VOS_GROUPS_HDR); + model.put(OUT_MESSAGE, NOT_IN_MANDATORY_VOS_GROUPS_MSG); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } @GetMapping(value = UNAPPROVED_NOT_LOGGED_IN) - public String showUnapprovedNotLoggedIn(ServletRequest req, Map model) { - ControllerUtils.setPageOptions(model, (HttpServletRequest) req, localization, htmlClasses, perunOidcConfig); + public String showUnapprovedNotLoggedIn(HttpServletRequest req, Map model) { + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); - String header = getText(model, NOT_LOGGED_IN_HDR); - String message = getText(model, NOT_LOGGED_IN_MSG); - String contactPText = getText(model, CONTACT_LANG_PROP_KEY); - - model.put(OUT_HEADER, header); - model.put(OUT_MESSAGE, message); - model.put(OUT_CONTACT_P, contactPText); + model.put(OUT_HEADER, NOT_LOGGED_IN_HDR); + model.put(OUT_MESSAGE, NOT_LOGGED_IN_MSG); + model.put(OUT_CONTACT_P, CONTACT_LANG_PROP_KEY); model.put(CONTACT_MAIL, perunOidcConfig.getEmailContact()); return "unapproved_spec"; } - private String getText(Map model, String key) { - Properties langProps = (Properties) model.get(LANG_PROPS_KEY); - return langProps.getProperty(key); - } - - private String replace(String container, String key, String value) { - if (container.contains(key)) { - return container.replaceAll(key, value); - } else { - return container; - } - } - } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedRegistrationController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedRegistrationController.java index 27bc89da1..3d99478b8 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedRegistrationController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/PerunUnapprovedRegistrationController.java @@ -10,7 +10,6 @@ import cz.muni.ics.oidc.server.adapters.PerunAdapter; import cz.muni.ics.oidc.server.configurations.FacilityAttrsConfig; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import cz.muni.ics.openid.connect.view.HttpCodeView; import java.io.IOException; import java.util.Collections; @@ -53,9 +52,6 @@ public class PerunUnapprovedRegistrationController { @Autowired private PerunOidcConfig perunOidcConfig; - @Autowired - private Localization localization; - @Autowired private WebHtmlClasses htmlClasses; @@ -116,7 +112,7 @@ public class PerunUnapprovedRegistrationController { } } - ControllerUtils.setPageOptions(model, request, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, request, htmlClasses, perunOidcConfig); model.put("client", client); model.put("facilityId", facilityId); model.put("action", buildActionUrl(request)); @@ -152,7 +148,7 @@ public class PerunUnapprovedRegistrationController { model.put("user_id", userId); model.put("action", request.getRequestURL().toString() .replace(REGISTRATION_CONTINUE_MAPPING, REGISTRATION_FORM_MAPPING)); - ControllerUtils.setPageOptions(model, request, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, request, htmlClasses, perunOidcConfig); return "registrationFormContinue"; } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/RegistrationController.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/RegistrationController.java index 753353d98..58ffa56fd 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/RegistrationController.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/controllers/RegistrationController.java @@ -2,7 +2,6 @@ package cz.muni.ics.oidc.web.controllers; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; -import cz.muni.ics.oidc.web.langs.Localization; import java.util.Map; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; @@ -27,18 +26,15 @@ public class RegistrationController { @Autowired private PerunOidcConfig perunOidcConfig; - @Autowired - private Localization localization; - @Autowired private WebHtmlClasses htmlClasses; @GetMapping(value = CONTINUE_DIRECT_MAPPING, params = { PARAM_TARGET }) - public String showRegistrationForm(Map model, HttpServletRequest req, + public String showRegistrationForm(HttpServletRequest req, Map model, @RequestParam(PARAM_TARGET) String target) { model.put(PARAM_TARGET, target); - ControllerUtils.setPageOptions(model, req, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, req, htmlClasses, perunOidcConfig); return "continue_direct"; } diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/langs/Localization.java b/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/langs/Localization.java deleted file mode 100644 index ec5caa9b9..000000000 --- a/perun-oidc-server/src/main/java/cz/muni/ics/oidc/web/langs/Localization.java +++ /dev/null @@ -1,103 +0,0 @@ -package cz.muni.ics.oidc.web.langs; - -import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Properties; -import lombok.extern.slf4j.Slf4j; - -/** - * Static utility class for Language Bar displayed on custom pages. - * - * It contains mapping with language keys to language displayed names. - * - * @author Dominik Frantisek Bucik - */ -@Slf4j -public class Localization { - - private Map localizationEntries; - private Map localizationFiles; - private final String localizationFilesPath; - private final List enabledLanguages; - - public Localization(PerunOidcConfig perunOidcConfig) { - this.enabledLanguages = perunOidcConfig.getAvailableLangs(); - this.localizationFilesPath = perunOidcConfig.getLocalizationFilesPath(); - this.initEntriesAndFiles(); - } - - public Map getLocalizationEntries() { - return localizationEntries; - } - - public Map getLocalizationFiles() { - return localizationFiles; - } - - public List getEnabledLanguages() { - return enabledLanguages; - } - - /** - * Get mapping for the languages available - * @return Map with key = language code, value = language displayed text - */ - public Map getEntriesAvailable() { - Map result = new HashMap<>(); - - for (String key: enabledLanguages) { - String lower = key.toLowerCase(); - if (localizationEntries.containsKey(lower)) { - result.put(lower, localizationEntries.get(lower)); - } - } - - return result; - } - - private void initEntriesAndFiles() { - localizationEntries = new HashMap<>(); - localizationEntries.put("en", "English"); - localizationEntries.put("cs", "Čeština"); - localizationEntries.put("sk", "Slovenčina"); - - localizationFiles = new HashMap<>(); - for (String lang: enabledLanguages) { - lang = lang.toLowerCase(); - if (! localizationEntries.containsKey(lang)) { - continue; - } - - Properties langProps = new Properties(); - String resourceFileName = "localization/" + lang + ".properties"; - try (InputStreamReader isr = new InputStreamReader(Objects.requireNonNull( - getClass().getClassLoader().getResourceAsStream(resourceFileName)), StandardCharsets.UTF_8)) { - langProps.load(isr); - log.debug("Loaded localization file: {}", resourceFileName); - localizationFiles.put(lang, langProps); - } catch (IOException e) { - log.warn("Exception caught when reading {}", resourceFileName, e); - } - - String customFileName = localizationFilesPath + '/' +lang + ".properties"; - try (InputStreamReader isr = new InputStreamReader( - new FileInputStream(customFileName), StandardCharsets.UTF_8 - )) { - langProps.load(isr); - log.debug("Loaded localization file: {}", customFileName); - } catch (FileNotFoundException e) { - log.warn("File: {} not found", customFileName, e); - } catch (IOException e) { - log.warn("Exception caught when reading {}", customFileName, e); - } - } - } -} diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/config/JsonMessageSource.java b/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/config/JsonMessageSource.java index 18a3ac6c6..e76c12209 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/config/JsonMessageSource.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/config/JsonMessageSource.java @@ -54,6 +54,10 @@ public class JsonMessageSource extends AbstractMessageSource { @Autowired private ConfigurationPropertiesBean config; + public JsonMessageSource(ConfigurationPropertiesBean config) { + this.config = config; + } + @Override protected MessageFormat resolveCode(String code, Locale locale) { diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/web/EndSessionEndpoint.java b/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/web/EndSessionEndpoint.java index a1e46f091..569f73c08 100644 --- a/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/web/EndSessionEndpoint.java +++ b/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/web/EndSessionEndpoint.java @@ -31,7 +31,6 @@ import cz.muni.ics.oauth2.service.ClientDetailsEntityService; import cz.muni.ics.oidc.server.configurations.PerunOidcConfig; import cz.muni.ics.oidc.web.WebHtmlClasses; import cz.muni.ics.oidc.web.controllers.ControllerUtils; -import cz.muni.ics.oidc.web.langs.Localization; import java.text.ParseException; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -76,19 +75,17 @@ public class EndSessionEndpoint { private final SelfAssertionValidator validator; private final PerunOidcConfig perunOidcConfig; private final ClientDetailsEntityService clientService; - private final Localization localization; private final WebHtmlClasses htmlClasses; @Autowired public EndSessionEndpoint(SelfAssertionValidator validator, PerunOidcConfig perunOidcConfig, ClientDetailsEntityService clientService, - Localization localization, - WebHtmlClasses htmlClasses) { + WebHtmlClasses htmlClasses) + { this.validator = validator; this.perunOidcConfig = perunOidcConfig; this.clientService = clientService; - this.localization = localization; this.htmlClasses = htmlClasses; } @@ -139,14 +136,14 @@ public class EndSessionEndpoint { // are we logged in or not? if (auth == null || !request.isUserInRole("ROLE_USER")) { // we're not logged in anyway, process the final redirect bits if needed - return processLogout(null, null, request, session); + return processLogout(null, null, session); } else { log.info("Logout confirmating for user {} from client {}", auth.getName(), client != null ? client.getClientName() : "unknown"); // we are logged in, need to prompt the user before we log out model.put("client", client); model.put("idToken", idTokenClaims); - ControllerUtils.setPageOptions(model, request, localization, htmlClasses, perunOidcConfig); + ControllerUtils.setPageOptions(model, request, htmlClasses, perunOidcConfig); // display the log out confirmation page return "logout"; @@ -156,7 +153,6 @@ public class EndSessionEndpoint { @RequestMapping(value = "/" + URL, method = RequestMethod.POST) public String processLogout(@RequestParam(value = "approve", required = false) String approved, @RequestParam(value = "deny", required = false) String deny, - HttpServletRequest request, HttpSession session) { String redirectUri = (String) session.getAttribute(REDIRECT_URI_KEY);