You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2019/11/07 16:07:45 UTC
[syncope] branch 2_0_X updated: [SYNCOPE-1509] Using Language Tag
Filtering
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_0_X by this push:
new d7e341e [SYNCOPE-1509] Using Language Tag Filtering
d7e341e is described below
commit d7e341ea0d5cc81cbe6ff70a575f5f85514dfe0d
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Nov 7 16:51:46 2019 +0100
[SYNCOPE-1509] Using Language Tag Filtering
---
.../apache/syncope/client/console/pages/Login.java | 25 ++++++++++++++++++++--
.../syncope/fit/console/AbstractConsoleITCase.java | 3 +++
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
index 4c7364f..fc6e6df 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
@@ -21,8 +21,11 @@ package org.apache.syncope.client.console.pages;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.select.BootstrapSelect;
import java.security.AccessControlException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Locale;
+import javax.ws.rs.core.HttpHeaders;
+import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleApplication;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
@@ -48,6 +51,8 @@ import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -201,8 +206,24 @@ public class Login extends WebPage {
}
});
- // set default value to English
- getModel().setObject(Locale.ENGLISH);
+ // set default language selection
+ List<Locale> filtered = Collections.emptyList();
+
+ String acceptLanguage = ((ServletWebRequest) RequestCycle.get().getRequest()).
+ getHeader(HttpHeaders.ACCEPT_LANGUAGE);
+ if (StringUtils.isNotBlank(acceptLanguage)) {
+ try {
+ filtered = Locale.filter(
+ Locale.LanguageRange.parse(acceptLanguage), SyncopeConsoleApplication.SUPPORTED_LOCALES);
+ } catch (Exception e) {
+ LOG.debug("Could not parse {} HTTP header value '{}'",
+ HttpHeaders.ACCEPT_LANGUAGE, acceptLanguage, e);
+ }
+ }
+
+ getModel().setObject(filtered.isEmpty()
+ ? Locale.ENGLISH
+ : filtered.get(0));
}
@Override
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
index 57e652c..3b69ded 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
@@ -20,6 +20,7 @@ package org.apache.syncope.fit.console;
import java.io.Serializable;
import java.lang.reflect.Method;
+import java.util.Locale;
import org.apache.syncope.client.console.pages.Login;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.common.rest.api.service.SyncopeService;
@@ -60,6 +61,8 @@ public abstract class AbstractConsoleITCase {
@BeforeClass
public static void setUp() {
+ Locale.setDefault(Locale.ENGLISH);
+
TESTER = ConsoleSetup.TESTER;
SYNCOPE_SERVICE = new SyncopeClientFactoryBean().