初始化

This commit is contained in:
2022-06-21 20:47:46 +08:00
parent b666a24a98
commit 59da3376c1
1246 changed files with 129600 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
package com.njcn.web.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.njcn.web.filter.XssFilter;
import com.njcn.web.filter.XssRequestWrapper;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
/**
* @author hongawen
* @version 1.0.0
* @createTime 2021年05月20日 17:00
*/
@Configuration
public class AntiSamyConfig {
/**
* 配置xss过滤器
*/
@Bean
public FilterRegistrationBean create() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new XssFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.setOrder(1);
return filterRegistrationBean;
}
}

View File

@@ -0,0 +1,42 @@
package com.njcn.web.config;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.text.SimpleDateFormat;
/**
* pqs
*
* @author cdf
* @date 2022/1/11
*/
public class DateTimeValidator implements ConstraintValidator<DateTimeStrValid, String> {
private DateTimeStrValid dateTime;
@Override
public void initialize(DateTimeStrValid dateTime) {
this.dateTime = dateTime;
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true;
}
String format = dateTime.format();
if (value.length() != format.length()) {
return false;
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
try {
simpleDateFormat.parse(value);
} catch (Exception e) {
return false;
}
return true;
}
}

View File

@@ -0,0 +1,64 @@
package com.njcn.web.config;
import com.nimbusds.jose.JWSObject;
import com.njcn.common.pojo.constant.SecurityConstants;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.EnumUtils;
import com.njcn.common.utils.PubUtils;
import com.njcn.web.utils.RequestUtil;
import feign.RequestInterceptor;
import feign.Util;
import feign.codec.Decoder;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Objects;
/**
* @author hongawen
* @version 1.0.0
* @date 2021年08月24日 15:07
*/
@Configuration
@RequiredArgsConstructor
public class FeignConfig {
/**
* 自定义拦截器
*/
@Bean
public RequestInterceptor authTokenInterceptor() {
return template -> {
if(Objects.nonNull(RequestUtil.getRequest())){
String jwtPayload = RequestUtil.getRequest().getHeader(SecurityConstants.JWT_PAYLOAD_KEY);
String realIp = RequestUtil.getRealIp();
template.header(SecurityConstants.JWT_PAYLOAD_KEY, jwtPayload);
template.header(SecurityConstants.REQUEST_HEADER_KEY_CLIENT_REAL_IP, realIp);
}
};
}
/**
* 自定义openfeign的解码器
*/
@Bean
public Decoder feignDecoder() {
return (response, type) -> {
String bodyStr = Util.toString(response.body().asReader(Util.UTF_8));
//对结果进行转换
HttpResult<Object> result = PubUtils.json2obj(bodyStr, type);
//如果返回错误,且为内部错误,则直接抛出异常
CommonResponseEnum commonResponseEnum = EnumUtils.getCommonResponseEnumByCode(result.getCode());
switch (commonResponseEnum) {
case SUCCESS:
return result;
default:
throw new BusinessException(result);
}
};
}
}