public boolean isModified(String etag, long lastModified, RouteContext routeContext) { final String browserEtag = routeContext.getHeader(HttpConstants.Header.IF_NONE_MATCH); if (browserEtag != null && !StringUtils.isNullOrEmpty(etag)) { return !(browserEtag.equals(etag)); } final String ifModifiedSince = routeContext.getHeader(HttpConstants.Header.IF_MODIFIED_SINCE); if ((lastModified > 0) && !StringUtils.isNullOrEmpty(ifModifiedSince)) { try { Date browserDate = DateUtils.parseHttpDateFormat(ifModifiedSince); if (browserDate.getTime() >= lastModified) { return false; } } catch (ParseException e) { log.warn("Can't parse HTTP date", e); } } return true; }
String acceptLanguage = routeContext.getHeader(HttpConstants.Header.ACCEPT_LANGUAGE); return getLanguageOrDefault(acceptLanguage);
@Override @SuppressWarnings("unchecked") public Object extract(MethodParameter parameter, RouteContext routeContext) { Header annotation = parameter.getAnnotation(Header.class); String name = getParameterName(parameter, annotation); String pattern = annotation.pattern(); ParameterValue parameterValue = new ParameterValue(routeContext.getRequest().getLocale(), routeContext.getHeader(name)); Class<?> parameterType = parameter.getParameterType(); if (Collection.class.isAssignableFrom(parameterType)) { Class<? extends Collection> collectionType = (Class<? extends Collection>) parameterType; Class<?> objectType = parameter.getParameterGenericType(); return parameterValue.toCollection(collectionType, objectType, pattern); } return parameterValue.to(parameterType, pattern); }
String contentType = new ParameterValue(context.getRequest().getLocale(), context.getHeader("Content-Type")).toString("").toLowerCase(); contentType = StringUtils.getPrefix(contentType, ';').trim(); if (!guardedTypes.contains(contentType)) { String requestToken = context.getHeader("Csrf-Token"); if ("nocheck".equals(requestToken)) { log.debug("Ignoring 'nocheck' request for {} '{}'", context.getRequestMethod(), context.getRequestUri());
@Override @SuppressWarnings("unchecked") public Object extract(MethodParameter parameter, RouteContext routeContext) { Header annotation = parameter.getAnnotation(Header.class); String name = getParameterName(parameter, annotation); String pattern = annotation.pattern(); ParameterValue parameterValue = new ParameterValue(routeContext.getRequest().getLocale(), routeContext.getHeader(name)); Class<?> parameterType = parameter.getParameterType(); if (Collection.class.isAssignableFrom(parameterType)) { Class<? extends Collection> collectionType = (Class<? extends Collection>) parameterType; Class<?> objectType = parameter.getParameterGenericType(); return parameterValue.toCollection(collectionType, objectType, pattern); } return parameterValue.to(parameterType, pattern); }