Example usage for org.springframework.web.servlet.handler HandlerInterceptorAdapter HandlerInterceptorAdapter

List of usage examples for org.springframework.web.servlet.handler HandlerInterceptorAdapter HandlerInterceptorAdapter

Introduction

In this page you can find the example usage for org.springframework.web.servlet.handler HandlerInterceptorAdapter HandlerInterceptorAdapter.

Prototype

HandlerInterceptorAdapter

Source Link

Usage

From source file:ca.weblite.contacts.webservice.RESTServiceConfiguration.java

@Override
public void addInterceptors(InterceptorRegistry registry) {

    registry.addInterceptor(new HandlerInterceptorAdapter() {

        @Override//from   w w w .  ja v  a2  s  .c o  m
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {
            System.out.println("About to handle request");
            response.getWriter().write("In handler");
            return super.preHandle(request, response, handler); //To change body of generated methods, choose Tools | Templates.
        }

    });

    registry.addWebRequestInterceptor(new WebRequestInterceptor() {

        public void preHandle(WebRequest wr) throws Exception {
            System.out.println("About to handle web request");

        }

        public void postHandle(WebRequest wr, ModelMap mm) throws Exception {

        }

        public void afterCompletion(WebRequest wr, Exception excptn) throws Exception {

        }
    });
    super.addInterceptors(registry); //To change body of generated methods, choose Tools | Templates.
}

From source file:com.cloudbees.demo.beesshop.web.WebConfig.java

@Override
public void addInterceptors(InterceptorRegistry registry) {
    super.addInterceptors(registry);
    HandlerInterceptor addShoppingCartInRequestHandlerInterceptor = new HandlerInterceptorAdapter() {

        @Override//from   w w w . ja va  2s .  co m
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                ModelAndView modelAndView) throws Exception {
            ShoppingCart shoppingCart = shoppingCartRepository.getCurrentShoppingCart(request);
            request.setAttribute("shoppingCart", shoppingCart);
        }
    };
    registry.addInterceptor(addShoppingCartInRequestHandlerInterceptor);
}

From source file:alfio.config.MvcConfiguration.java

@Bean
public HandlerInterceptor getEventLocaleSetterInterceptor() {
    return new HandlerInterceptorAdapter() {
        @Override//  w w w.  ja v a 2s .c om
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {

            if (handler instanceof HandlerMethod) {
                HandlerMethod handlerMethod = ((HandlerMethod) handler);
                RequestMapping reqMapping = handlerMethod.getMethodAnnotation(RequestMapping.class);

                //check if the request mapping value has the form "/event/{something}"
                Pattern eventPattern = Pattern.compile("^/event/\\{(\\w+)}/{0,1}.*");
                if (reqMapping != null && reqMapping.value().length == 1
                        && eventPattern.matcher(reqMapping.value()[0]).matches()) {

                    Matcher m = eventPattern.matcher(reqMapping.value()[0]);
                    m.matches();

                    String pathVariableName = m.group(1);

                    //extract the parameter name
                    Arrays.stream(handlerMethod.getMethodParameters())
                            .map(methodParameter -> methodParameter.getParameterAnnotation(PathVariable.class))
                            .filter(Objects::nonNull).map(PathVariable::value).filter(pathVariableName::equals)
                            .findFirst().ifPresent((val) -> {

                                //fetch the parameter value
                                @SuppressWarnings("unchecked")
                                String eventName = Optional.ofNullable(((Map<String, Object>) request
                                        .getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE))
                                                .get(val))
                                        .orElse("").toString();

                                LocaleResolver resolver = RequestContextUtils.getLocaleResolver(request);
                                Locale locale = resolver.resolveLocale(request);
                                List<ContentLanguage> cl = i18nManager.getEventLanguages(eventName);

                                request.setAttribute("ALFIO_EVENT_NAME", eventName);

                                if (cl.stream().noneMatch(
                                        contentLanguage -> contentLanguage.getLanguage().equals(Optional
                                                .ofNullable(locale).orElse(Locale.ENGLISH).getLanguage()))) {
                                    //override the user locale if it's not in the one permitted by the event
                                    resolver.setLocale(request, response, cl.stream().findFirst()
                                            .map(ContentLanguage::getLocale).orElse(Locale.ENGLISH));
                                } else {
                                    resolver.setLocale(request, response, locale);
                                }
                            });
                }
            }
            return true;
        }
    };
}

From source file:alfio.config.MvcConfiguration.java

@Bean
public HandlerInterceptorAdapter getDefaultTemplateObjectsFiller() {
    return new HandlerInterceptorAdapter() {
        @Override/*  ww  w  .  ja  va  2 s .  c o  m*/
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                ModelAndView modelAndView) throws Exception {
            Optional.ofNullable(modelAndView)
                    .filter(mv -> !StringUtils.startsWith(mv.getViewName(), "redirect:")).ifPresent(mv -> {
                        mv.addObject("request", request);
                        final ModelMap modelMap = mv.getModelMap();

                        boolean demoModeEnabled = environment.acceptsProfiles(Initializer.PROFILE_DEMO);

                        modelMap.put("demoModeEnabled", demoModeEnabled);

                        Optional.ofNullable(request.getAttribute("ALFIO_EVENT_NAME")).map(Object::toString)
                                .ifPresent(eventName -> {

                                    List<?> availableLanguages = i18nManager.getEventLanguages(eventName);

                                    modelMap.put("showAvailableLanguagesInPageTop",
                                            availableLanguages.size() > 1);
                                    modelMap.put("availableLanguages", availableLanguages);
                                });

                        modelMap.putIfAbsent("event", null);
                        modelMap.putIfAbsent("pageTitle", "empty");
                        Event event = modelMap.get("event") == null ? null
                                : modelMap.get("event") instanceof Event ? (Event) modelMap.get("event")
                                        : ((EventDescriptor) modelMap.get("event")).getEvent();
                        ConfigurationPathKey googleAnalyticsKey = Optional.ofNullable(event)
                                .map(e -> alfio.model.system.Configuration.from(e.getOrganizationId(),
                                        e.getId(), GOOGLE_ANALYTICS_KEY))
                                .orElseGet(() -> alfio.model.system.Configuration
                                        .getSystemConfiguration(GOOGLE_ANALYTICS_KEY));
                        modelMap.putIfAbsent("analyticsEnabled", StringUtils
                                .isNotBlank(configurationManager.getStringConfigValue(googleAnalyticsKey, "")));

                        if (demoModeEnabled) {
                            modelMap.putIfAbsent("paypalTestUsername",
                                    configurationManager.getStringConfigValue(alfio.model.system.Configuration
                                            .getSystemConfiguration(PAYPAL_DEMO_MODE_USERNAME), "<missing>"));
                            modelMap.putIfAbsent("paypalTestPassword",
                                    configurationManager.getStringConfigValue(alfio.model.system.Configuration
                                            .getSystemConfiguration(PAYPAL_DEMO_MODE_PASSWORD), "<missing>"));
                        }
                    });
        }
    };
}

From source file:alfio.config.MvcConfiguration.java

private HandlerInterceptor getCSPInterceptor() {
    return new HandlerInterceptorAdapter() {
        @Override//from  www. j a  v a2  s . co m
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                ModelAndView modelAndView) throws Exception {
            // http://www.html5rocks.com/en/tutorials/security/content-security-policy/
            // lockdown policy
            response.addHeader("Content-Security-Policy", "default-src 'none'; "//block all by default
                    + " script-src 'self' https://js.stripe.com/ https://api.stripe.com/ https://ssl.google-analytics.com/ https://www.google.com/recaptcha/api.js https://www.gstatic.com/recaptcha/api2/ https://maps.googleapis.com/;"//
                    + " style-src 'self' 'unsafe-inline';" // unsafe-inline for style is acceptable...
                    + " img-src 'self' https: data:;"//
                    + " child-src 'self';"//webworker
                    + " frame-src 'self' https://js.stripe.com https://www.google.com;" + " font-src 'self';"//
                    + " media-src blob: 'self';"//for loading camera api
                    + " connect-src 'self' https://api.stripe.com https://maps.googleapis.com/ https://geocoder.cit.api.here.com;" //<- currently stripe.js use jsonp but if they switch to xmlhttprequest+cors we will be ready
                    + (environment.acceptsProfiles(Initializer.PROFILE_DEBUG_CSP)
                            ? " report-uri /report-csp-violation"
                            : ""));
        }
    };
}

From source file:alfio.config.MvcConfiguration.java

@Bean
public HandlerInterceptor getCsrfInterceptor() {
    return new HandlerInterceptorAdapter() {
        @Override//from  w  ww . jav a  2 s .  com
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                ModelAndView modelAndView) throws Exception {
            Optional.ofNullable(modelAndView).ifPresent(mv -> mv.addObject(WebSecurityConfig.CSRF_PARAM_NAME,
                    request.getAttribute(CsrfToken.class.getName())));
        }
    };
}