|
|
@@ -11,6 +11,7 @@ import com.zhiqiyun.open.core.enmus.IBaseEnum;
|
|
|
import com.zhiqiyun.open.utils.ServletContext;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.http.converter.HttpMessageConverter;
|
|
|
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
|
|
@@ -36,68 +37,72 @@ import java.util.List;
|
|
|
@Configuration
|
|
|
public class WebMvcConfig extends DelegatingWebMvcConfiguration {
|
|
|
|
|
|
- @Autowired
|
|
|
- private OauthInterceptor oauthInterceptor;
|
|
|
-
|
|
|
- @Override
|
|
|
- protected void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
|
- registry.addResourceHandler("/**").addResourceLocations("classpath:/public/");
|
|
|
- super.addResourceHandlers(registry);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
|
|
- converters.removeIf(converter -> converter instanceof MappingJackson2HttpMessageConverter);
|
|
|
- ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().build();
|
|
|
-
|
|
|
- objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
|
|
|
-
|
|
|
- SimpleModule module = new SimpleModule();
|
|
|
- module.addSerializer(IBaseEnum.class, new JsonSerializer<IBaseEnum>() {
|
|
|
- @Override
|
|
|
- public void serialize(IBaseEnum value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
|
|
- gen.writeStartObject();
|
|
|
- gen.writeObjectField("value", value.getValue());
|
|
|
- gen.writeStringField("text", value.getText());
|
|
|
- gen.writeStringField("name", value.getName());
|
|
|
- gen.writeEndObject();
|
|
|
- }
|
|
|
- });
|
|
|
- objectMapper.registerModule(module);
|
|
|
-
|
|
|
- MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
|
|
|
- converters.add(converter);
|
|
|
- log.info("{}", converters.size());
|
|
|
- super.configureMessageConverters(converters);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addInterceptors(InterceptorRegistry registry) {
|
|
|
- registry.addInterceptor(new HandlerInterceptor() {
|
|
|
- @Override
|
|
|
- public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler) {
|
|
|
- ServletContext.init(request, response);
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, Exception ex) {
|
|
|
- ServletContext.clean();
|
|
|
- }
|
|
|
- }).addPathPatterns("/**").excludePathPatterns("/static/**", "/index.html");
|
|
|
- registry.addInterceptor(this.oauthInterceptor).addPathPatterns("/**").excludePathPatterns("/static/**", "/index.html");
|
|
|
- super.addInterceptors(registry);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addCorsMappings(CorsRegistry registry) {
|
|
|
- registry.addMapping("/**")
|
|
|
- .allowedOriginPatterns("*")
|
|
|
- .allowCredentials(true)
|
|
|
- .allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH")
|
|
|
- .maxAge(3600);
|
|
|
- super.addCorsMappings(registry);
|
|
|
- }
|
|
|
+ @Value("${uploader.save-path}")
|
|
|
+ private String uploaderSavePath;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OauthInterceptor oauthInterceptor;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
|
+ registry.addResourceHandler("/**").addResourceLocations("classpath:/public/");
|
|
|
+ registry.addResourceHandler("/src/**").addResourceLocations(String.format("file:%s/", this.uploaderSavePath));
|
|
|
+ super.addResourceHandlers(registry);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
|
|
+ converters.removeIf(converter -> converter instanceof MappingJackson2HttpMessageConverter);
|
|
|
+ ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().build();
|
|
|
+
|
|
|
+ objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
|
|
|
+
|
|
|
+ SimpleModule module = new SimpleModule();
|
|
|
+ module.addSerializer(IBaseEnum.class, new JsonSerializer<IBaseEnum>() {
|
|
|
+ @Override
|
|
|
+ public void serialize(IBaseEnum value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
|
|
+ gen.writeStartObject();
|
|
|
+ gen.writeObjectField("value", value.getValue());
|
|
|
+ gen.writeStringField("text", value.getText());
|
|
|
+ gen.writeStringField("name", value.getName());
|
|
|
+ gen.writeEndObject();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ objectMapper.registerModule(module);
|
|
|
+
|
|
|
+ MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
|
|
|
+ converters.add(converter);
|
|
|
+ log.info("{}", converters.size());
|
|
|
+ super.configureMessageConverters(converters);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addInterceptors(InterceptorRegistry registry) {
|
|
|
+ registry.addInterceptor(new HandlerInterceptor() {
|
|
|
+ @Override
|
|
|
+ public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler) {
|
|
|
+ ServletContext.init(request, response);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void afterCompletion(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler, Exception ex) {
|
|
|
+ ServletContext.clean();
|
|
|
+ }
|
|
|
+ }).addPathPatterns("/**").excludePathPatterns("/src/**", "/index.html");
|
|
|
+ registry.addInterceptor(this.oauthInterceptor).addPathPatterns("/**").excludePathPatterns("/src/**", "/index.html");
|
|
|
+ super.addInterceptors(registry);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addCorsMappings(CorsRegistry registry) {
|
|
|
+ registry.addMapping("/**")
|
|
|
+ .allowedOriginPatterns("*")
|
|
|
+ .allowCredentials(true)
|
|
|
+ .allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH")
|
|
|
+ .maxAge(3600);
|
|
|
+ super.addCorsMappings(registry);
|
|
|
+ }
|
|
|
}
|
|
|
|