Package org.springframework.security.oauth.examples.config

Source Code of org.springframework.security.oauth.examples.config.WebMvcConfig

package org.springframework.security.oauth.examples.config;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.support.ConversionServiceFactoryBean;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.MediaType;
import org.springframework.http.converter.BufferedImageHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.security.oauth.examples.tonr.SparklrService;
import org.springframework.security.oauth.examples.tonr.converter.AccessTokenRequestConverter;
import org.springframework.security.oauth.examples.tonr.impl.SparklrServiceImpl;
import org.springframework.security.oauth.examples.tonr.mvc.FacebookController;
import org.springframework.security.oauth.examples.tonr.mvc.SparklrController;
import org.springframework.security.oauth2.client.OAuth2RestTemplate;
import org.springframework.web.accept.ContentNegotiationManagerFactoryBean;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.ContentNegotiatingViewResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.json.MappingJacksonJsonView;

@Configuration
@EnableWebMvc
@ImportResource("/WEB-INF/spring-servlet.xml")
//@Import(SecurityConfig.class)
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Bean
    public PropertySourcesPlaceholderConfigurer myPropertySourcesPlaceholderConfigurer() {
        PropertySourcesPlaceholderConfigurer p = new PropertySourcesPlaceholderConfigurer();
        p.setLocation(new ClassPathResource("sparklr.properties"));
        return p;
    }

    @Bean
    public ContentNegotiatingViewResolver contentViewResolver() throws Exception {
        ContentNegotiatingViewResolver contentViewResolver = new ContentNegotiatingViewResolver();
        ContentNegotiationManagerFactoryBean contentNegotiationManager = new ContentNegotiationManagerFactoryBean();
        contentNegotiationManager.addMediaType("json", MediaType.APPLICATION_JSON);
        contentViewResolver.setContentNegotiationManager(contentNegotiationManager.getObject());
        contentViewResolver.setDefaultViews(Arrays.<View>asList(new MappingJacksonJsonView()));
        return contentViewResolver;
    }

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/jsp/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }

    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    @Bean
    public SparklrController sparklrController(SparklrService sparklrService) {
        SparklrController controller = new SparklrController();
        controller.setSparklrService(sparklrService);
        return controller;
    }

    @Bean
    public FacebookController facebookController(@Qualifier("facebookRestTemplate") OAuth2RestTemplate facebookRestTemplate) {
        FacebookController controller = new FacebookController();
        controller.setFacebookRestTemplate(facebookRestTemplate);
        return controller;
    }

    @Bean
    public SparklrServiceImpl sparklrService(@Value("${sparklrPhotoListURL}") String sparklrPhotoListURL,
            @Value("${sparklrPhotoURLPattern}") String sparklrPhotoURLPattern,
            @Value("${sparklrTrustedMessageURL}") String sparklrTrustedMessageURL,
            @Qualifier("sparklrRestTemplate") OAuth2RestTemplate sparklrRestTemplate,
            @Qualifier("trustedClientRestTemplate") OAuth2RestTemplate trustedClientRestTemplate) {
        SparklrServiceImpl sparklrService = new SparklrServiceImpl();
        sparklrService.setSparklrPhotoListURL(sparklrPhotoListURL);
        sparklrService.setSparklrPhotoURLPattern(sparklrPhotoURLPattern);
        sparklrService.setSparklrTrustedMessageURL(sparklrTrustedMessageURL);
        sparklrService.setSparklrRestTemplate(sparklrRestTemplate);
        sparklrService.setTrustedClientRestTemplate(trustedClientRestTemplate);
        return sparklrService;
    }

    @Bean
    public ConversionServiceFactoryBean conversionService() {
        ConversionServiceFactoryBean conversionService = new ConversionServiceFactoryBean();
        conversionService.setConverters(Collections.singleton(new AccessTokenRequestConverter()));
        return conversionService;
    }

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

    @Override
    public void configureMessageConverters(
            List<HttpMessageConverter<?>> converters) {
        converters.add(new BufferedImageHttpMessageConverter());
    }
}
TOP

Related Classes of org.springframework.security.oauth.examples.config.WebMvcConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.