¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.lf.server.config; |
| | | |
| | | import com.alibaba.fastjson.serializer.SerializerFeature; |
| | | import com.alibaba.fastjson.support.config.FastJsonConfig; |
| | | import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.http.converter.HttpMessageConverter; |
| | | import org.springframework.util.AntPathMatcher; |
| | | import org.springframework.web.servlet.config.annotation.*; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * WebConfig |
| | | * @author WWW |
| | | */ |
| | | @Configuration |
| | | public class WebConfig extends WebMvcConfigurationSupport { |
| | | /** |
| | | * swaggeræ§å¶ |
| | | */ |
| | | @Override |
| | | protected void addResourceHandlers(ResourceHandlerRegistry registry) { |
| | | registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); |
| | | registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); |
| | | } |
| | | |
| | | /** |
| | | * 忽ç¥urlå°å大å°å |
| | | */ |
| | | @Override |
| | | protected void configurePathMatch(PathMatchConfigurer configurer) { |
| | | AntPathMatcher matcher = new AntPathMatcher(); |
| | | matcher.setCaseSensitive(false); |
| | | |
| | | configurer.setPathMatcher(matcher); |
| | | } |
| | | |
| | | /** |
| | | * è·¨åè¯·æ± |
| | | */ |
| | | @Override |
| | | protected void addCorsMappings(CorsRegistry registry) { |
| | | registry.addMapping("/**") |
| | | .allowedOrigins("*") |
| | | .allowedHeaders("*") |
| | | .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") |
| | | .maxAge(3600) |
| | | .allowCredentials(true); |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç»ä¸çæ¦æªå¨ |
| | | */ |
| | | @Override |
| | | protected void addInterceptors(InterceptorRegistry registry) { |
| | | super.addInterceptors(registry); |
| | | } |
| | | |
| | | /** |
| | | * å¤çjsonæ ¼å¼ï¼å¼nullç转æ¢ä¸º"" |
| | | */ |
| | | @Override |
| | | public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { |
| | | FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); |
| | | FastJsonConfig fastJsonConfig = new FastJsonConfig(); |
| | | fastJsonConfig.setSerializerFeatures( |
| | | SerializerFeature.WriteNullListAsEmpty, |
| | | SerializerFeature.WriteMapNullValue, |
| | | SerializerFeature.WriteNullStringAsEmpty, |
| | | SerializerFeature.WriteNullBooleanAsFalse); |
| | | // ç»ææ¯å¦æ ¼å¼å,é»è®¤ä¸ºfalse |
| | | //SerializerFeature.PrettyFormat); |
| | | |
| | | List<MediaType> fastMediaTypes = new ArrayList<>(); |
| | | converter.setSupportedMediaTypes(fastMediaTypes); |
| | | |
| | | converter.setFastJsonConfig(fastJsonConfig); |
| | | converters.add(converter); |
| | | } |
| | | } |
| | |
| | | * @author |
| | | */ |
| | | public enum HttpStatus { |
| | | /** |
| | | * è¯·æ±æå |
| | | */ |
| | | OK(200,"è¯·æ±æå"), |
| | | |
| | | /** |
| | | * è¯·æ±æ æ |
| | | */ |
| | | BAD_REQUEST(400,"è¯·æ±æ æ"), |
| | | |
| | | /** |
| | | * æªç»ææè®¿é® |
| | | */ |
| | | UNAUTHORIZED(401,"æªç»ææè®¿é®"), |
| | | |
| | | /** |
| | | * æå¡è¯·æ±æªæ¾å° |
| | | */ |
| | | NOT_FOUND(404,"æå¡è¯·æ±æªæ¾å°"), |
| | | |
| | | NODATA_FOUND(404404,"æ°æ®æªæ¾å°"), |
| | | |
| | | /** |
| | | * ç³»ç»é误 |
| | | */ |
| | | ERROR(500,"ç³»ç»é误"), |
| | | |
| | | UNIQUE_ERROR(500100,"æ°æ®å¯ä¸æ§é误,åå¨éå¤çæ°æ®"), |
| | | /** |
| | | * åå¨éå¤çæ°æ® |
| | | */ |
| | | UNIQUE_ERROR(500100,"åå¨éå¤çæ°æ®"), |
| | | |
| | | /** |
| | | * åæ°æ ¡éªé误 |
| | | */ |
| | | VALIDATE_ERROR(500101,"åæ°æ ¡éªé误"), |
| | | |
| | | /** |
| | | * tokené误 |
| | | */ |
| | | TOKEN_ERROR(500102,"tokené误"), |
| | | |
| | | /** |
| | | * ç¨æ·æªç»é |
| | | */ |
| | | NO_LOGIN_ERROR(500104,"ç¨æ·æªç»é"), |
| | | |
| | | LOGIN_ERROR(500105,"ç¨æ·ç»é失败"), |
| | | /** |
| | | * ç»é失败 |
| | | */ |
| | | LOGIN_ERROR(500105,"ç»é失败"), |
| | | |
| | | /** |
| | | * æ æéè®¿é® |
| | | */ |
| | | NO_AUTH_ERROR(500106,"æ æé访é®"), |
| | | |
| | | /** |
| | | * ç¨æ·åé误 |
| | | */ |
| | | LOGIN_USER_ERROR(500107,"ç¨æ·åé误"), |
| | | |
| | | LOGIN_PWD_ERROR(500108,"ç¨æ·å¯ç é误"), |
| | | /** |
| | | * å¯ç é误 |
| | | */ |
| | | LOGIN_PWD_ERROR(500108,"å¯ç é误"), |
| | | |
| | | /** |
| | | * ç¨æ·è¢«éå® |
| | | */ |
| | | USER_LOCK_ERROR(500109,"ç¨æ·è¢«éå®"), |
| | | |
| | | PWD_NONSTANDARD(500111,"ç¨æ·å¯ç ä¸åè§è"), |
| | | /** |
| | | * å¯ç ä¸åè§è |
| | | */ |
| | | PWD_NONSTANDARD(500111,"å¯ç ä¸åè§è"), |
| | | |
| | | ACCOUNT_TYPE_ERROR(500112,"ç¨æ·è´¦å·ç±»åä¸å¹é
"), |
| | | |
| | | EMAIL_NONSTANDARD(500113,"é®ç®±æ ¼å¼é误ï¼"), |
| | | |
| | | PHONE_NONSTANDARD(500114,"çµè¯æ ¼å¼é误ï¼"), |
| | | |
| | | DATA_NO_AUTH_ERROR(500115,"æ°æ®ä¸å¨æ¥è¯¢èå´å
"), |
| | | |
| | | LOGIN_PWD_EXPIRE(500116,"å¯ç è¿æ"), |
| | | |
| | | WORK_FLOW_SUBMIT_ERROR(500200,"æµç¨æäº¤é误"), |
| | | |
| | | WORK_FLOW_APPROVAL_ERROR(500201,"æµç¨å®¡æ ¸é误"), |
| | | |
| | | WORK_FLOW_REJECT_ERROR(500202,"æµç¨éåé误"), |
| | | |
| | | WORK_FLOW_CANCEL_ERROR(500203,"æµç¨åæ¶é误"), |
| | | |
| | | WORK_FLOW_NO_EXIST(500204,"ä¸å卿µç¨åå²è®°å½"), |
| | | |
| | | EMAIL_CONFIG_ERROR(500300,"é®ç®±æªé
ç½®"), |
| | | |
| | | JST_CONFIG_ERROR(500301,"峿¶éæªé
ç½®"), |
| | | |
| | | JST_ACCOUNT_ERROR(500302,"峿¶è´¦å·é误"), |
| | | |
| | | SECRET_KEY_ERROR(500304,"å¯é¥æªé
ç½®é误"), |
| | | |
| | | DB_DEL_NODATA_ERROR(500401,"å é¤0æ¡æ°æ®"); |
| | | /** |
| | | * å¯ç è¿æ |
| | | */ |
| | | LOGIN_PWD_EXPIRE(500116,"å¯ç è¿æ"); |
| | | |
| | | private HttpStatus(int value, String msg) { |
| | | this.value = value; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.lf.server.interceptor; |
| | | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.servlet.*; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | |
| | | /** |
| | | * è·¨åè¿æ»¤ |
| | | * @author www |
| | | * @date 2022-09-27 |
| | | * @Component("CrosFilter") |
| | | */ |
| | | public class CrosFilter implements Filter { |
| | | private static final String OPTIONS = "OPTIONS"; |
| | | |
| | | @Override |
| | | public void init(FilterConfig filterConfig) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { |
| | | HttpServletResponse response = (HttpServletResponse) resp; |
| | | HttpServletRequest request = (HttpServletRequest) req; |
| | | if (OPTIONS.equalsIgnoreCase(request.getMethod())) { |
| | | response.setHeader("Access-Control-Allow-Origin", "*"); |
| | | response.setHeader("Access-Control-Allow-Credentials", "true"); |
| | | response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS"); |
| | | response.setHeader("Access-Control-Max-Age", "86400"); |
| | | response.setHeader("Access-Control-Allow-Headers", "*"); |
| | | |
| | | response.setStatus(HttpServletResponse.SC_OK); |
| | | } else { |
| | | chain.doFilter(req, resp); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void destroy() { |
| | | |
| | | } |
| | | } |