package pt.ist.fenix.servlet; import java.io.IOException; import java.util.IllformedLocaleException; import java.util.Locale; import java.util.Locale.Builder; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.fenixedu.bennu.core.util.CoreConfiguration; import org.fenixedu.commons.i18n.I18N; /** * This is used to set the language in the FenixAPI. * It was created to use the Bennu API. * This filter is deprecated since its inception. This must be adapted to the next bennu release which will make it available for * every api call. * * */ @Deprecated @WebFilter(urlPatterns = "/api/fenix/*") public class FenixAPILanguageFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { doFilter((HttpServletRequest) request, (HttpServletResponse) response, chain); } public void doFilter(final HttpServletRequest request, final HttpServletResponse response, FilterChain chain) throws ServletException, IOException { final String localeTag = request.getParameter("lang"); if (localeTag != null) { try { final Locale locale = new Builder().setLanguageTag(localeTag).build(); if (CoreConfiguration.supportedLocales().contains(locale)) { I18N.setLocale(locale); I18N.setLocale(locale); } } catch (IllformedLocaleException e) { } } chain.doFilter(request, response); } @Override public void init(FilterConfig arg0) throws ServletException { } }