Subversion Repositories SmartDukaan

Rev

Rev 23951 | Rev 24440 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21561 ashik.ali 1
package com.spice.profitmandi.web.config;
21555 kshitij.so 2
 
23951 amit.gupta 3
import java.time.LocalDateTime;
4
import java.time.chrono.IsoChronology;
5
import java.time.format.DateTimeFormatter;
6
import java.time.format.DateTimeFormatterBuilder;
7
import java.time.format.ResolverStyle;
23878 amit.gupta 8
import java.util.List;
9
 
21561 ashik.ali 10
import org.springframework.beans.factory.annotation.Autowired;
23951 amit.gupta 11
import org.springframework.context.annotation.Bean;
21555 kshitij.so 12
import org.springframework.context.annotation.ComponentScan;
13
import org.springframework.context.annotation.Configuration;
23886 amit.gupta 14
import org.springframework.format.FormatterRegistry;
15
import org.springframework.format.datetime.standard.DateTimeFormatterRegistrar;
23878 amit.gupta 16
import org.springframework.http.converter.HttpMessageConverter;
17
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
21555 kshitij.so 18
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
21561 ashik.ali 19
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
21555 kshitij.so 20
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
21
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
22
 
23878 amit.gupta 23
import com.fasterxml.jackson.databind.ObjectMapper;
24
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
25
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
23951 amit.gupta 26
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
27
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
23878 amit.gupta 28
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
21561 ashik.ali 29
import com.spice.profitmandi.web.interceptor.AuthenticationInterceptor;
22107 ashik.ali 30
import com.spice.profitmandi.web.interceptor.RoleInterceptor;
21561 ashik.ali 31
 
21555 kshitij.so 32
@EnableWebMvc
33
@Configuration
34
@ComponentScan({"com.spice.profitmandi.*"})
35
public class WebConfig extends WebMvcConfigurerAdapter{
36
 
37
	private static final String RESOURCES_PATTERN="/resources/**";
38
	private static final String RESOURCES_LOCATION="/resources/";
39
 
21561 ashik.ali 40
	@Autowired
41
	AuthenticationInterceptor authenticationInterceptor;
22107 ashik.ali 42
 
43
	@Autowired
44
	RoleInterceptor roleInterceptor;
45
 
21555 kshitij.so 46
	@Override
47
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
48
	   registry.addResourceHandler(RESOURCES_PATTERN).addResourceLocations(RESOURCES_LOCATION);
49
	}
50
 
21561 ashik.ali 51
	@Override
52
	public void addInterceptors(InterceptorRegistry registry) {
24383 amit.gupta 53
		registry.addInterceptor(authenticationInterceptor).addPathPatterns("/**").excludePathPatterns("/login", "/login/","/forgetPassword","/forgetPassword/", "/", "");
54
		registry.addInterceptor(roleInterceptor).excludePathPatterns("/login", "/login/", "/register", "/register/","/forgetPassword","/forgetPassword/", "/","");
21561 ashik.ali 55
	}
56
 
23886 amit.gupta 57
	@Override
58
    public void addFormatters(FormatterRegistry registry) {
59
        DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
60
        registrar.setUseIsoFormat(true);
61
        registrar.registerFormatters(registry);
62
    }
63
 
23878 amit.gupta 64
 
23886 amit.gupta 65
 
23878 amit.gupta 66
	@Override
23925 amit.gupta 67
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
23878 amit.gupta 68
        converters.add(new MappingJackson2HttpMessageConverter(objectMapper()));
69
    }
70
 
23951 amit.gupta 71
	@Bean
72
	public ObjectMapper objectMapper() {
73
		DateTimeFormatter df = new DateTimeFormatterBuilder()
74
                .parseCaseInsensitive()
75
                .append(DateTimeFormatter.ISO_LOCAL_DATE)
76
                .optionalStart()
77
                .appendLiteral('T')
78
                .optionalEnd()
79
                .appendLiteral(' ')
80
                .append(DateTimeFormatter.ISO_LOCAL_TIME)
81
                .toFormatter();
82
		DateTimeFormatter sf = new DateTimeFormatterBuilder()
83
				.parseCaseInsensitive()
84
				.append(DateTimeFormatter.ISO_LOCAL_DATE)
85
				.appendLiteral('T')
86
				.append(DateTimeFormatter.ISO_LOCAL_TIME)
87
				.toFormatter();
88
		LocalDateTimeSerializer serializer = new LocalDateTimeSerializer(sf);
89
		LocalDateTimeDeserializer deserializer = new LocalDateTimeDeserializer(df);
90
		JavaTimeModule jtm = new JavaTimeModule();
91
		jtm.addSerializer(LocalDateTime.class, serializer);
92
		jtm.addDeserializer(LocalDateTime.class, deserializer);
23878 amit.gupta 93
		ObjectMapper mapper = new ObjectMapper()
94
				   .registerModule(new ParameterNamesModule())
95
				   .registerModule(new Jdk8Module())
23951 amit.gupta 96
				   .registerModule(jtm); // new module, NOT JSR310Module
23878 amit.gupta 97
		return mapper;
98
	}
99
 
21555 kshitij.so 100
}