private long getContentLength(VaadinRequest request) { try { return Long.parseLong(request.getHeader("Content-Length")); } catch (NumberFormatException e) { return -1; } }
@Override public Map<String, List<String>> getHeaders() { Map<String, List<String>> headers = new HashMap<>(); Enumeration<String> names = request.getHeaderNames(); if (names != null) { while (names.hasMoreElements()) { String name = names.nextElement(); String value = request.getHeader(name); if (value == null || value.trim().equals("")) { headers.put(name, Collections.emptyList()); } else { if (value.indexOf(',') > -1) { headers.put(name, Arrays.asList(value.split(","))); } else { headers.put(name, Collections.singletonList(value)); } } } } return headers; }
@Override public boolean synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException { // Check if the browser is supported // If Chrome Frame is available we'll assume it's ok WebBrowser b = session.getBrowser(); if (b.isTooOldToFunctionProperly() && !b.isChromeFrameCapable()) { // bypass if cookie set String c = request.getHeader("Cookie"); if (c == null || !c.contains(FORCE_LOAD_COOKIE)) { response.setNoCacheHeaders(); writeBrowserTooOldPage(request, response); return true; // request handled } } return false; // pass to next handler }
@Override public Map<String, List<String>> getHeaders() { Map<String, List<String>> headers = new HashMap<>(); Enumeration<String> names = request.getHeaderNames(); if (names != null) { while (names.hasMoreElements()) { String name = names.nextElement(); String value = request.getHeader(name); if (value == null || value.trim().equals("")) { headers.put(name, Collections.emptyList()); } else { if (value.indexOf(',') > -1) { headers.put(name, Arrays.asList(value.split(","))); } else { headers.put(name, Collections.singletonList(value)); } } } } return headers; }
@Override public String getHeader(String name) { return instance.getHeader(name); }
/** * Checks whether the given request was referred from the login page.<p> * * @param request the request * * @return <code>true</code> in case of login ui requests */ static boolean isLoginUIRequest(VaadinRequest request) { String referrer = request.getHeader("referer"); return (referrer != null) && referrer.contains(CmsWorkplaceLoginHandler.LOGIN_HANDLER); }
@Override public int getIntHeader(String name) { return Integer.valueOf(instance.getHeader(name)); }
@Override public ViewPortSettings select(BootstrapPageResponse response) { String ua = response.getRequest().getHeader("User-Agent"); if (ua != null && ua.contains("IEMobile")) { return ieViewPortSettings; } return null; }
public static boolean isMobile() { VaadinRequest vaadinRequest = VaadinService.getCurrentRequest(); boolean mobileUserAgent = vaadinRequest.getHeader("user-agent") .toLowerCase().contains("mobile"); return mobileUserAgent; }
/** * For internal use by VaadinServlet/VaadinPortlet only. Updates all * properties in the class according to the given information. * * @param request * the Vaadin request to read the information from */ public void updateRequestDetails(VaadinRequest request) { locale = request.getLocale(); address = request.getRemoteAddr(); secureConnection = request.isSecure(); // Headers are case insensitive according to the specification but are // case sensitive in Weblogic portal... String agent = request.getHeader("User-Agent"); if (agent != null) { browserApplication = agent; browserDetails = new VBrowserDetails(agent); } if (request.getParameter("v-sw") != null) { updateClientSideDetails(request.getParameter("v-sw"), request.getParameter("v-sh"), request.getParameter("v-tzo"), request.getParameter("v-rtzo"), request.getParameter("v-dstd"), request.getParameter("v-dston"), request.getParameter("v-tzid"), request.getParameter("v-curdate"), request.getParameter("v-td") != null); } }
@Override public Locale negotiate(List<Locale> supportedLocales, VaadinRequest vaadinRequest) { String languages = vaadinRequest.getHeader("Accept-Language"); try { // Use reflection here, so the code compiles with jdk 1.7 Class<?> languageRange = Class .forName("java.util.Locale$LanguageRange"); Method parse = languageRange.getMethod("parse", String.class); Object priorityList = parse.invoke(null, languages); Method lookup = Locale.class.getMethod("lookup", List.class, Collection.class); return (Locale) lookup.invoke(null, priorityList, supportedLocales); } catch (ClassNotFoundException | IllegalAccessException | IllegalArgumentException | NoSuchMethodException | SecurityException | InvocationTargetException e) { throw new RuntimeException( "Java8LocaleNegotiontionStrategy need java 1.8 or newer.", e); } } }
@Override public Locale negotiate(final List<Locale> supportedLocales, VaadinRequest vaadinRequest) { String languages = vaadinRequest.getHeader("Accept-Language"); ArrayList<Locale> preferredArray = new ArrayList<>( supportedLocales);
@Override public boolean synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException { // Check if the browser is supported WebBrowser b = session.getBrowser(); if (b.isTooOldToFunctionProperly()) { // bypass if cookie set String c = request.getHeader("Cookie"); if (c == null || !c.contains(FORCE_LOAD_COOKIE)) { writeBrowserTooOldPage(request, response); return true; // request handled } } return false; // pass to next handler }
/** * For internal use only. Updates all properties in the class according to * the given information. * * @param request * the Vaadin request to read the information from */ public void updateRequestDetails(VaadinRequest request) { locale = request.getLocale(); address = request.getRemoteAddr(); secureConnection = request.isSecure(); // Headers are case insensitive according to the specifiation but are // case sensitive in Weblogic portal... String agent = request.getHeader("User-Agent"); if (agent != null) { browserApplication = agent; browserDetails = new BrowserDetails(agent); } if (request.getParameter("v-sw") != null) { updateClientSideDetails(request.getParameter("v-sw"), request.getParameter("v-sh"), request.getParameter("v-tzo"), request.getParameter("v-rtzo"), request.getParameter("v-dstd"), request.getParameter("v-dston"), request.getParameter("v-curdate"), request.getParameter("v-td") != null); } }