初始化
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user