Browse Source

提交漏洞修复代码和民生诉求对接

v2
chenrui 2 years ago
parent
commit
a81c5fdb21
  1. 2
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CookieFilter.java
  2. 94
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java
  3. 5
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/HostFilter.java
  4. 11
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java
  5. 50
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/SpringSessionConfiguration.java
  6. 18
      lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/TomcatConfig.java
  7. 2
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/application.yml
  8. 6
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/MssqApiServiceImpl.java

2
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CookieFilter.java

@ -11,7 +11,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
@Component //@Component
public class CookieFilter implements Filter { public class CookieFilter implements Filter {

94
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java

@ -3,12 +3,15 @@ package com.zdxt.auth.framework.config;
import com.zdxt.auth.common.utils.security.ShiroUtils; import com.zdxt.auth.common.utils.security.ShiroUtils;
import com.zdxt.auth.framework.shiro.jwt.JWTUtils; import com.zdxt.auth.framework.shiro.jwt.JWTUtils;
import com.zdxt.domain.auth.User; import com.zdxt.domain.auth.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -17,38 +20,83 @@ import java.util.Map;
* @author: QingWang.Li * @author: QingWang.Li
* @date: 2020/5/27 11:35 * @date: 2020/5/27 11:35
*/ */
@Component @Slf4j
@Component()
public class CorsFilter implements Filter { public class CorsFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse res = (HttpServletResponse) response;
res.addHeader("Access-Control-Allow-Credentials", "true");
res.addHeader("Access-Control-Allow-Origin", "*");
res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN,token");
res.addHeader("X-Frame-Options", "SAMEORIGIN");
// res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN");
// User user = ShiroUtils.getSysUser();
// Map<String,Object> payload = new HashMap<>();
// payload.put("id", user.getUserId());
// payload.put("name", user.getPassword());
// String token1 = JWTUtils.sign(payload);
// res.addHeader("token", token1);
// if (((HttpServletRequest) request).getMethod().equals("OPTIONS")) {
// response.getWriter().println("ok"); // public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
// return; // throws IOException, ServletException {
// } // HttpServletResponse res = (HttpServletResponse) response;
// TODO 暂时允许options 判断请求方法是否为OPTIONS // res.addHeader("Access-Control-Allow-Credentials", "true");
// res.addHeader("Access-Control-Allow-Origin", "*");
// res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
// res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN,token");
// res.addHeader("X-Frame-Options", "SAMEORIGIN");
//// res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN");
//// User user = ShiroUtils.getSysUser();
//// Map<String,Object> payload = new HashMap<>();
//// payload.put("id", user.getUserId());
//// payload.put("name", user.getPassword());
//// String token1 = JWTUtils.sign(payload);
//// res.addHeader("token", token1);
//
//// if (((HttpServletRequest) request).getMethod().equals("OPTIONS")) {
//// response.getWriter().println("ok");
//// return;
//// }
//// TODO 暂时允许options 判断请求方法是否为OPTIONS
// if (((HttpServletRequest) request).getMethod().equals("OPTIONS")) { // if (((HttpServletRequest) request).getMethod().equals("OPTIONS")) {
// // 设置响应头信息,禁止OPTIONS请求 // // 设置响应头信息,禁止OPTIONS请求
// res.setHeader("Allow", "GET, POST, HEAD, PUT, DELETE"); // res.setHeader("Allow", "GET, POST, HEAD, PUT, DELETE");
// res.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED); // res.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
// return; // return;
// } // }
chain.doFilter(request, response); // chain.doFilter(request, response);
// }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//配置可信域名
String[] authhosts = {"http://10.132.108.3:85","http://jdm.szssfj.cn","http://localhost:85"};
String authost = "";
HttpServletRequest httprequest = (HttpServletRequest) request;
String origin = httprequest.getHeader("Origin");
log.info("Origin头:{}",origin);
HttpServletResponse httpresponse = (HttpServletResponse) response;
if(origin != null && !Arrays.asList(authhosts).contains(origin)) {
httpresponse.sendError(403);
return;
}
else {
for(int i=0;i<authhosts.length;i++) {
if(i!=authhosts.length - 1) {
authost = authost + authhosts[i]+",";
}else {
authost = authost + authhosts[i];
}
}
httpresponse.addHeader("Access-Control-Allow-Origin", authost);
httpresponse.addHeader("Access-Control-Allow-Methods",
"GET, POST");
httpresponse.addHeader("Access-Control-Allow-Headers",
"origin, content-type, accept, x-requested-with, sid, mycustom, smuser");
httpresponse.addHeader("Access-Control-Allow-Credentials", "true");
httpresponse.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
httpresponse.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN,token");
httpresponse.addHeader("X-Frame-Options", "SAMEORIGIN");
// res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN");
// TODO 暂时允许options 判断请求方法是否为OPTIONS
if (((HttpServletRequest) request).getMethod().equals("OPTIONS")) {
// 设置响应头信息,禁止OPTIONS请求
httpresponse.setHeader("Allow", "GET, POST, HEAD, PUT, DELETE");
httpresponse.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
return;
}
chain.doFilter(request, response);
}
} }
@Override @Override
public void destroy() { public void destroy() {

5
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/HostFilter.java

@ -41,12 +41,13 @@ public class HostFilter implements Filter{
String[] split = host.split(":"); String[] split = host.split(":");
String serverName = request.getServerName(); String serverName = request.getServerName();
log.info("请求的源地址:{}",host); log.info("请求的源地址:{}",host);
System.out.println("serverName-debug:" + host); // System.out.println("serverName-debug:" + host);
if (!isEmpty(split[0])) { if (!isEmpty(split[0])) {
if (checkBlankList(split[0])) { if (checkBlankList(split[0])) {
filterChain.doFilter(servletRequest, servletResponse); filterChain.doFilter(servletRequest, servletResponse);
} else { } else {
System.out.println("[serverName deny access tips]->" + split[0]); // System.out.println("[serverName deny access tips]->" + split[0]);
log.info("被拦截的IP:{}",split[0]);
// response.getWriter().print("host deny"); // response.getWriter().print("host deny");
response.setStatus(403); response.setStatus(403);
response.flushBuffer(); response.flushBuffer();

11
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java

@ -76,11 +76,12 @@ public class ResourcesConfig implements WebMvcConfigurer
"/code/linkage", "/code/linkage",
"/code/ruleList", "/code/ruleList",
"/code/LawEnforcementWarningList", "/code/LawEnforcementWarningList",
"/system/dept", "/system/dept/**",
"/system/user", "/system/user/**",
"/system/role", "/system/role/**",
"/system/post", "/system/post/**",
"/system/menu", "/system/menu/**",
"/code/linkage/**",
"/monitor/operlog", "/monitor/operlog",
"/monitor/logininfor", "/monitor/logininfor",
"/system/dict", "/system/dict",

50
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/SpringSessionConfiguration.java

@ -1,25 +1,25 @@
package com.zdxt.auth.framework.config; //package com.zdxt.auth.framework.config;
//
import org.apache.tomcat.util.http.SameSiteCookies; //import org.apache.tomcat.util.http.SameSiteCookies;
import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.Configuration;
import org.springframework.session.web.http.CookieSerializer; //import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer; //import org.springframework.session.web.http.DefaultCookieSerializer;
//
//
@Configuration ////@Configuration
public class SpringSessionConfiguration { //public class SpringSessionConfiguration {
//
@Bean // @Bean
public CookieSerializer cookieSerializer() { // public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer (); // DefaultCookieSerializer serializer = new DefaultCookieSerializer ();
serializer.setCookieName("JSESSIONID"); // serializer.setCookieName("JSESSIONID");
serializer.setDomainName("localhost"); //// serializer.setDomainName("localhost");
serializer.setCookiePath("/**"); // serializer.setCookiePath("/**");
serializer.setCookieMaxAge(3600); // serializer.setCookieMaxAge(3600);
serializer.setSameSite(SameSiteCookies.LAX.getValue()); // 设置SameSite属性 // serializer.setSameSite(SameSiteCookies.LAX.getValue()); // 设置SameSite属性
serializer.setUseHttpOnlyCookie(true); // serializer.setUseHttpOnlyCookie(true);
// serializer.setUseSecureCookie(true); //// serializer.setUseSecureCookie(true);
return serializer; // return serializer;
} // }
} //}

18
lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/TomcatConfig.java

@ -45,14 +45,14 @@ public class TomcatConfig {
return tomcatServletContainerFactory; return tomcatServletContainerFactory;
} }
//tomcat配置 //tomcat配置
@Bean // @Bean
public TomcatContextCustomizer sameSiteCookiesConfig() { // public TomcatContextCustomizer sameSiteCookiesConfig() {
return context -> { // return context -> {
final Rfc6265CookieProcessor cookieProcessor = new Rfc6265CookieProcessor(); // final Rfc6265CookieProcessor cookieProcessor = new Rfc6265CookieProcessor();
// 设置Cookie的SameSite // // 设置Cookie的SameSite
cookieProcessor.setSameSiteCookies(SameSiteCookies.LAX.getValue()); // cookieProcessor.setSameSiteCookies(SameSiteCookies.LAX.getValue());
context.setCookieProcessor(cookieProcessor); // context.setCookieProcessor(cookieProcessor);
}; // };
} // }
} }

2
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/application.yml

@ -271,6 +271,8 @@ srnwg:
mssq: mssq:
appId: 67a83c8a136346cd98f844359902a23c appId: 67a83c8a136346cd98f844359902a23c
appkey: NjdhODNjOGExMzYzNDZjZDk4Zjg0NDM1OTkwMmEyM2M6TXNzcTIwMjQ= appkey: NjdhODNjOGExMzYzNDZjZDk4Zjg0NDM1OTkwMmEyM2M6TXNzcTIwMjQ=
apiUrl: http://10.224.158.64:8282/proxy/api
#短信平台 #短信平台
sms: sms:

6
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/MssqApiServiceImpl.java

@ -16,13 +16,13 @@ import static com.zdxt.code.utils.ServiceInvocation.httpRequest;
@Service @Service
public class MssqApiServiceImpl implements MssqApiService { public class MssqApiServiceImpl implements MssqApiService {
@Value("mssq.apiUrl") // @Value("${mssq.apiUrl}")
private String mssqUrl; private String mssqUrl;
@Value("mssq.appId") // @Value("${mssq.appId}")
private String appId; private String appId;
@Value("mssq.appKey") // @Value("${mssq.appKey}")
private String appKey; private String appKey;
@Override @Override

Loading…
Cancel
Save