Prechádzať zdrojové kódy

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

# Conflicts:
#	common/common-entity/sql记录
yeshijie 3 rokov pred
rodič
commit
9e65c7126c

+ 3 - 0
gateway/ag-basic/src/main/java/com/yihu/AgBasicServer.java

@ -1,5 +1,7 @@
package com.yihu;
import com.netflix.zuul.FilterProcessor;
import com.yihu.jw.gateway.filter.DidiFilterProcessor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@ -16,6 +18,7 @@ import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
public class AgBasicServer extends SpringBootServletInitializer {
    public static void main(String [] args) {
        FilterProcessor.setProcessor(new DidiFilterProcessor());
        SpringApplication.run(AgBasicServer.class, args);
    }

+ 28 - 0
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/DidiFilterProcessor.java

@ -0,0 +1,28 @@
package com.yihu.jw.gateway.filter;
import com.netflix.zuul.FilterProcessor;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: yeshijie
 * @Date: 2021/5/19
 * @Description:
 */
public class DidiFilterProcessor extends FilterProcessor {
    @Override
    public Object processZuulFilter(ZuulFilter filter) throws ZuulException {
        try {
            return super.processZuulFilter(filter);
        } catch (ZuulException e) {
            ZuulException e1 = new ZuulException("123456",10085,"10000");
            RequestContext ctx = RequestContext.getCurrentContext();
            ctx.set("failed.exception", e1);
            ctx.set("failed.filter", filter);
            throw e1 ;
        }
    }
}

+ 34 - 0
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/ErrorExtFilter.java

@ -0,0 +1,34 @@
package com.yihu.jw.gateway.filter;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter;
import org.springframework.stereotype.Component;
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: yeshijie
 * @Date: 2021/5/19
 * @Description:
 */
@Component
public class ErrorExtFilter extends SendErrorFilter{
    @Override
    public String filterType() {
        return "error";
    }
    @Override
    public int filterOrder() {
        return 30;
    }
    @Override
    public boolean shouldFilter() {
        RequestContext ctx = RequestContext.getCurrentContext();
        ZuulFilter failedFilter = (ZuulFilter) ctx.get("failed.filter");
        if(failedFilter != null && failedFilter.filterType().equals("post")) {
            return true;
        }
        return false;
    }
}

+ 24 - 24
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/PostFilter.java

@ -47,30 +47,30 @@ public class PostFilter extends ZuulFilter {
        }
        InputStream stream = RequestContext.getCurrentContext().getResponseDataStream();
        try {
        byte[] bytes;
        if(RequestContext.getCurrentContext().getResponseGZipped()){
            GZIPInputStream gzipInputStream = null;
            gzipInputStream = new GZIPInputStream(stream);
            bytes = StreamUtils.copyToByteArray(gzipInputStream);
        }else {
            bytes = StreamUtils.copyToByteArray(stream);
        }
        String body = new String(bytes,"UTF8");
        JSONObject object = new JSONObject();
        object.put("status","200");
        object.put("data", AesEncryptUtils.encrypt(body));
        if (!(url.contains("/open/noLogin/notify")||
            url.contains("/open/noLogin/ylzReceiveNotify")||
            url.contains("/open/noLogin/receiveNotify")||
            url.contains("/open/noLogin/getSFExpressInfoNew")||
            url.contains("/open/noLogin/sfroutepushservice")||
            url.contains("/open/noLogin/ylzSettleRecord")||
                url.contains("/weixin")||url.contains("/oauth/getSsoPublicKey"))){
            RequestContext.getCurrentContext().setResponseBody(object.toJSONString());
        }else {
            RequestContext.getCurrentContext().setResponseBody(body);
        }
        logger.info(ctx.getResponseBody()+"");
            byte[] bytes;
            if(RequestContext.getCurrentContext().getResponseGZipped()){
                GZIPInputStream gzipInputStream = null;
                gzipInputStream = new GZIPInputStream(stream);
                bytes = StreamUtils.copyToByteArray(gzipInputStream);
            }else {
                bytes = StreamUtils.copyToByteArray(stream);
            }
            String body = new String(bytes,"UTF8");
            JSONObject object = new JSONObject();
            object.put("status","200");
            object.put("data", AesEncryptUtils.encrypt(body));
            if (!(url.contains("/open/noLogin/notify")||
                url.contains("/open/noLogin/ylzReceiveNotify")||
                url.contains("/open/noLogin/receiveNotify")||
                url.contains("/open/noLogin/getSFExpressInfoNew")||
                url.contains("/open/noLogin/sfroutepushservice")||
                url.contains("/open/noLogin/ylzSettleRecord")||
                    url.contains("/weixin")||url.contains("/oauth/getSsoPublicKey"))){
                RequestContext.getCurrentContext().setResponseBody(object.toJSONString());
            }else {
                RequestContext.getCurrentContext().setResponseBody(body);
            }
            logger.info(ctx.getResponseBody()+"");
        } catch (Exception e) {
            e.printStackTrace();
        }