diff --git a/lib/EmergencyService/pom.xml b/lib/EmergencyService/pom.xml
index c4a1c19f..02f3a93f 100644
--- a/lib/EmergencyService/pom.xml
+++ b/lib/EmergencyService/pom.xml
@@ -92,7 +92,19 @@
spring-boot-devtools
true
-
+
+ org.springframework.session
+ spring-session-core
+
+
+ org.springframework.session
+ spring-session-data-redis
+
+
+ org.springframework.session
+ spring-session
+ 1.3.1.RELEASE
+
mysql
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CookieFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CookieFilter.java
index 18a85cc2..a9ff8df2 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CookieFilter.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CookieFilter.java
@@ -1,5 +1,6 @@
package com.zdxt.auth.framework.config;
+import org.apache.tomcat.util.http.SameSiteCookies;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseCookie;
import org.springframework.stereotype.Component;
@@ -10,7 +11,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-//@Component
+@Component
public class CookieFilter implements Filter {
@@ -21,6 +22,7 @@ public class CookieFilter implements Filter {
String url = httpRequest.getRequestURL().toString();
+
Cookie[] cookies = httpRequest.getCookies();
if (cookies != null){
StringBuilder sb = new StringBuilder();
@@ -28,10 +30,13 @@ public class CookieFilter implements Filter {
String cookieName = cookie.getName();
String cookieValue = cookie.getValue();
System.out.println("url = " + url + ", cookieName = " + cookieName + ", cookieValue = " + cookieValue);
- ResponseCookie lastCookie = ResponseCookie.from(cookieName, cookieValue).httpOnly(true).sameSite("Strict").build();
- httpResponse.addHeader(HttpHeaders.SET_COOKIE,lastCookie.toString());
- httpResponse.addHeader(HttpHeaders.COOKIE,lastCookie.toString());
+// ResponseCookie lastCookie = ResponseCookie.from(cookieName, cookieValue).httpOnly(true).sameSite("Lax").build();
+
+ sb.append(cookieName).append("=").append(cookieValue).append(";");
}
+ sb.append("HttpOnly; SameSite=Lax");
+ httpResponse.addHeader(HttpHeaders.SET_COOKIE,sb.toString());
+ httpResponse.addHeader(HttpHeaders.COOKIE,sb.toString());
}
filterChain.doFilter(httpRequest,httpResponse);
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java
index c8df44f6..bad19d9b 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java
@@ -25,8 +25,7 @@ public class CorsFilter implements Filter {
throws IOException, ServletException {
HttpServletResponse res = (HttpServletResponse) response;
res.addHeader("Access-Control-Allow-Credentials", "true");
- res.addHeader("Access-Control-Allow-Origin", ((HttpServletRequest) request).getHeader("origin"));
-// res.addHeader("Access-Control-Allow-Origin", "http://10.132.108.3");
+ 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");
@@ -42,7 +41,7 @@ public class CorsFilter implements Filter {
// response.getWriter().println("ok");
// return;
// }
- // 判断请求方法是否为OPTIONS
+// TODO 暂时允许options 判断请求方法是否为OPTIONS
// if (((HttpServletRequest) request).getMethod().equals("OPTIONS")) {
// // 设置响应头信息,禁止OPTIONS请求
// res.setHeader("Allow", "GET, POST, HEAD, PUT, DELETE");
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/FilterConfig.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/FilterConfig.java
index 1ad2a9eb..c9b24cde 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/FilterConfig.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/FilterConfig.java
@@ -1,81 +1,81 @@
-//package com.zdxt.auth.framework.config;
-//
-//import java.util.Map;
-//import javax.servlet.DispatcherType;
-//
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.boot.web.servlet.FilterRegistrationBean;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import com.google.common.collect.Maps;
-//import com.zdxt.auth.common.utils.StringUtils;
-//import com.zdxt.auth.common.xss.XssFilter;
-//import org.springframework.web.cors.CorsConfiguration;
-//import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-//import org.springframework.web.filter.CorsFilter;
-//
-///**
-// * Filter配置
-// *
-// * @author ruoyi
-// */
-//@Configuration
-//public class FilterConfig
-//{
-// @Value("${xss.enabled}")
-// private String enabled;
-//
-// @Value("${xss.excludes}")
-// private String excludes;
-//
-// @Value("${xss.urlPatterns}")
-// private String urlPatterns;
-//
-// //http host头攻击漏洞处理过滤器
-// @Autowired
-// HostFilter hostFilter;
-//
-// @SuppressWarnings({ "rawtypes", "unchecked" })
-// @Bean
-// public FilterRegistrationBean xssFilterRegistration()
-// {
-// FilterRegistrationBean registration = new FilterRegistrationBean();
-// registration.setDispatcherTypes(DispatcherType.REQUEST);
-// registration.setFilter(new XssAndSqlFilter());
-// registration.addUrlPatterns(StringUtils.split(urlPatterns, ","));
-// registration.setName("xssFilter");
-// registration.setOrder(Integer.MAX_VALUE);
-// Map initParameters = Maps.newHashMap();
-// initParameters.put("excludes", excludes);
-// initParameters.put("enabled", enabled);
-// registration.setInitParameters(initParameters);
-// return registration;
-// }
-// @Bean
-// public FilterRegistrationBean hostfilter() {
-// FilterRegistrationBean registration = new FilterRegistrationBean();
-// registration.setFilter(hostFilter);
-// registration.addUrlPatterns("/*");
-// registration.setName("hostFilter");
-// registration.setOrder(1); // 值越小,Filter越靠前。
-// return registration;
-// }
-// @Bean
-// public FilterRegistrationBean corsNewFilter() {
-// UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-// CorsConfiguration config = new CorsConfiguration();
-// config.setAllowCredentials(true);
-// config.addAllowedOrigin("http://10.132.108.3:85");
-// config.addAllowedOrigin("http://10.132.108.3:80");
-// config.addAllowedOrigin("http://10.132.108.3:81");
-// config.addAllowedHeader("*");
-// config.addAllowedMethod("*");
-// source.registerCorsConfiguration("/**", config); // CORS 配置对所有接口都有效
-// FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
-// bean.setOrder(0);
-// return bean;
-// }
-//
-//
-//}
+package com.zdxt.auth.framework.config;
+
+import java.util.Map;
+import javax.servlet.DispatcherType;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import com.google.common.collect.Maps;
+import com.zdxt.auth.common.utils.StringUtils;
+import com.zdxt.auth.common.xss.XssFilter;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+/**
+ * Filter配置
+ *
+ * @author ruoyi
+ */
+@Configuration
+public class FilterConfig
+{
+ @Value("${xss.enabled}")
+ private String enabled;
+
+ @Value("${xss.excludes}")
+ private String excludes;
+
+ @Value("${xss.urlPatterns}")
+ private String urlPatterns;
+
+ //http host头攻击漏洞处理过滤器
+ @Autowired
+ HostFilter hostFilter;
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Bean
+ public FilterRegistrationBean xssFilterRegistration()
+ {
+ FilterRegistrationBean registration = new FilterRegistrationBean();
+ registration.setDispatcherTypes(DispatcherType.REQUEST);
+ registration.setFilter(new XssAndSqlFilter());
+ registration.addUrlPatterns(StringUtils.split(urlPatterns, ","));
+ registration.setName("xssFilter");
+ registration.setOrder(Integer.MAX_VALUE);
+ Map initParameters = Maps.newHashMap();
+ initParameters.put("excludes", excludes);
+ initParameters.put("enabled", enabled);
+ registration.setInitParameters(initParameters);
+ return registration;
+ }
+ @Bean
+ public FilterRegistrationBean hostfilter() {
+ FilterRegistrationBean registration = new FilterRegistrationBean();
+ registration.setFilter(hostFilter);
+ registration.addUrlPatterns("/*");
+ registration.setName("hostFilter");
+ registration.setOrder(1); // 值越小,Filter越靠前。
+ return registration;
+ }
+ @Bean
+ public FilterRegistrationBean corsNewFilter() {
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ CorsConfiguration config = new CorsConfiguration();
+ config.setAllowCredentials(true);
+ config.addAllowedOrigin("http://10.132.108.3:85");
+ config.addAllowedOrigin("http://10.132.108.3:80");
+ config.addAllowedOrigin("http://10.132.108.3:81");
+ config.addAllowedHeader("*");
+ config.addAllowedMethod("*");
+ source.registerCorsConfiguration("/**", config); // CORS 配置对所有接口都有效
+ FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
+ bean.setOrder(0);
+ return bean;
+ }
+
+
+}
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/GlobalCorsConfig.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/GlobalCorsConfig.java
index ccf43f24..1302a354 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/GlobalCorsConfig.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/GlobalCorsConfig.java
@@ -1,37 +1,37 @@
-//package com.zdxt.auth.framework.config;
-//
-//import org.springframework.boot.web.servlet.FilterRegistrationBean;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.web.cors.CorsConfiguration;
-//import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-//
-//import java.util.Arrays;
-//
+package com.zdxt.auth.framework.config;
+
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+
+import java.util.Arrays;
+
//@Configuration
-//public class GlobalCorsConfig {
-// @Bean
-// public FilterRegistrationBean corsfilter() {
-// FilterRegistrationBean corsFilterFilterRegistrationBean = new FilterRegistrationBean<>();
-// //添加CORS配置信息
-// CorsConfiguration corsConfiguration = new CorsConfiguration();
-// //允许的域,不要写*,否则cookie就无法使用了
-// corsConfiguration.addAllowedOrigin("http://10.132.108.3");
-// //允许的头信息
-// corsConfiguration.addAllowedHeader("*");
-// //允许的请求方式
-// corsConfiguration.setAllowedMethods(Arrays.asList("POST", "PUT", "GET", "DELETE"));
-// //是否发送cookie信息
-// corsConfiguration.setAllowCredentials(true);
-// //预检请求的有效期,单位为秒
-// corsConfiguration.setMaxAge(3600L);
-//
-// //添加映射路径,标识待拦截的请求
-// UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-// source.registerCorsConfiguration("/**", corsConfiguration);
-//
-// corsFilterFilterRegistrationBean.setFilter(new org.springframework.web.filter.CorsFilter(source));
-// corsFilterFilterRegistrationBean.setOrder(-1);
-// return corsFilterFilterRegistrationBean;
-// }
-//}
+public class GlobalCorsConfig {
+ @Bean
+ public FilterRegistrationBean corsfilter() {
+ FilterRegistrationBean corsFilterFilterRegistrationBean = new FilterRegistrationBean<>();
+ //添加CORS配置信息
+ CorsConfiguration corsConfiguration = new CorsConfiguration();
+ //允许的域,不要写*,否则cookie就无法使用了
+ corsConfiguration.addAllowedOrigin("http://10.132.108.3");
+ //允许的头信息
+ corsConfiguration.addAllowedHeader("*");
+ //允许的请求方式
+ corsConfiguration.setAllowedMethods(Arrays.asList("POST", "PUT", "GET", "DELETE"));
+ //是否发送cookie信息
+ corsConfiguration.setAllowCredentials(true);
+ //预检请求的有效期,单位为秒
+ corsConfiguration.setMaxAge(3600L);
+
+ //添加映射路径,标识待拦截的请求
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/**", corsConfiguration);
+
+ corsFilterFilterRegistrationBean.setFilter(new org.springframework.web.filter.CorsFilter(source));
+ corsFilterFilterRegistrationBean.setOrder(-1);
+ return corsFilterFilterRegistrationBean;
+ }
+}
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MyDefaultWebSessionManager.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MyDefaultWebSessionManager.java
new file mode 100644
index 00000000..8713576c
--- /dev/null
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MyDefaultWebSessionManager.java
@@ -0,0 +1,55 @@
+package com.zdxt.auth.framework.config;
+
+import org.apache.shiro.session.Session;
+import org.apache.shiro.session.mgt.SessionContext;
+import org.apache.shiro.web.servlet.Cookie;
+import org.apache.shiro.web.servlet.ShiroHttpServletRequest;
+import org.apache.shiro.web.servlet.ShiroHttpSession;
+import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
+import org.apache.shiro.web.util.WebUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.Serializable;
+
+public class MyDefaultWebSessionManager extends DefaultWebSessionManager {
+ private static final Logger log = LoggerFactory.getLogger(MyDefaultWebSessionManager.class);
+
+ @Override
+ protected void onStart(Session session, SessionContext context) {
+ super.onStart(session, context);
+ if (!WebUtils.isHttp(context)) {
+ log.debug("SessionContext argument is not HTTP compatible or does not have an HTTP request/response pair. No session ID cookie will be set.");
+ } else {
+ HttpServletRequest request = WebUtils.getHttpRequest(context);
+ HttpServletResponse response = WebUtils.getHttpResponse(context);
+ if (this.isSessionIdCookieEnabled()) {
+ Serializable sessionId = session.getId();
+ //重写父类方法,使用我们自己定义的cookie
+ this.storeSessionId(sessionId, request, response);
+ } else {
+ log.debug("Session ID cookie is disabled. No cookie has been set for new session with id {}", session.getId());
+ }
+
+ request.removeAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_SOURCE);
+ request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_IS_NEW, Boolean.TRUE);
+ }
+ }
+
+ private void storeSessionId(Serializable currentId, HttpServletRequest request, HttpServletResponse response) {
+ if (currentId == null) {
+ String msg = "sessionId cannot be null when persisting for subsequent requests.";
+ throw new IllegalArgumentException(msg);
+ } else {
+// Cookie cookie = this.getSessionIdCookie();
+ Cookie cookie = new MySimpleCookie(ShiroHttpSession.DEFAULT_SESSION_ID_NAME,"Lax");
+ String idString = currentId.toString();
+ cookie.setValue(idString);
+ //这一行决定自定义的cookie中的属性
+ cookie.saveTo(request, response);
+ log.trace("Set session ID cookie for session with id {}", idString);
+ }
+ }
+}
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MySimpleCookie.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MySimpleCookie.java
new file mode 100644
index 00000000..0f752de5
--- /dev/null
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/MySimpleCookie.java
@@ -0,0 +1,84 @@
+package com.zdxt.auth.framework.config;
+
+import org.apache.shiro.util.StringUtils;
+import org.apache.shiro.web.servlet.SimpleCookie;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class MySimpleCookie extends SimpleCookie {
+ private static final transient Logger log = LoggerFactory.getLogger(MySimpleCookie.class);
+ //自定义的属性sameSite
+ private String sameSite;
+
+ //重写该方法,添加SameSite属性
+ @Override
+ public void saveTo(HttpServletRequest request, HttpServletResponse response) {
+ String name = this.getName();
+ String value = this.getValue();
+ String comment = this.getComment();
+ String domain = this.getDomain();
+ String path = this.calculatePath(request);
+ int maxAge = this.getMaxAge();
+ int version = this.getVersion();
+ boolean secure = this.isSecure();
+ boolean httpOnly = this.isHttpOnly();
+ String s = this.addCookieHeader(name, value, comment, domain, path, maxAge,
+ version, secure, httpOnly);
+ //在原来的基础上添加SameSite属性
+ String headerValue = appendtSameSite(s, sameSite);
+ String s1 = s.replace("lax","Lax;");
+ response.addHeader("Set-Cookie", s1);
+ }
+
+ private String addCookieHeader(String name,
+ String value, String comment, String domain,
+ String path, int maxAge, int version, boolean secure,
+ boolean httpOnly) {
+ String headerValue = this.buildHeaderValue(name, value, comment, domain, path, maxAge, version, secure, httpOnly);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Added HttpServletResponse Cookie [{}]", headerValue);
+ }
+ return headerValue;
+ }
+
+ private String calculatePath(HttpServletRequest request) {
+ String path = StringUtils.clean(this.getPath());
+ if (!StringUtils.hasText(path)) {
+ path = StringUtils.clean(request.getContextPath());
+ }
+
+ if (path == null) {
+ path = "/";
+ }
+
+ log.trace("calculated path: {}", path);
+ return path;
+ }
+
+ //这里只拼接一个字符串,没用StringBuilder,不考虑效率问题
+ private String appendtSameSite(String s, String sameSite) {
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(sameSite)) {
+ s += ("; ");
+ s += ("SameSite=") + sameSite;
+ }
+ return s;
+ }
+
+ public SameSiteOptions getSameSite() {
+ System.out.println(SameSiteOptions.LAX);
+ return SameSiteOptions.LAX;
+ }
+
+ public void setSameSite(String sameSite) {
+ this.sameSite = sameSite;
+ }
+
+ public MySimpleCookie(String name, String sameSite) {
+ super(name);
+ this.sameSite = sameSite;
+ }
+}
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java
index edb40adc..7f2182f1 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ResourcesConfig.java
@@ -50,9 +50,10 @@ public class ResourcesConfig implements WebMvcConfigurer
public void addCorsMappings(CorsRegistry registry){
registry.addMapping("/**") //对哪种格式的路径进行跨域处理
.allowedHeaders("*") //允许的请求头
- .allowedMethods("GET", "POST", "PUT", "DELETE") //允许的请求方法
- .maxAge(1800) //探测请求的有效期
- .allowedOrigins("http://10.132.108.3:85","http://10.76.108.1:85","http://192.168.31.71:85"); //支持的域
+ .allowedOrigins("*") //支持的域
+ .allowedMethods("GET", "POST", "PUT", "DELETE","oprion") //允许的请求方法
+ .maxAge(1800); //探测请求的有效期
+
}
/**
@@ -63,10 +64,7 @@ public class ResourcesConfig implements WebMvcConfigurer
{
// registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");
registry.addInterceptor(new JWTInterceptor())
- .addPathPatterns("/**")
- .excludePathPatterns("/app/thirdLogin/siqLogin", "/appLogin","/login","/index","/**/*.css",
- "/**/*.js", "/**/*.png", "/**/*.jpg",
- "/**/*.jpeg", "/**/*.gif", "/**/fonts/*",
+ .excludePathPatterns("/app/thirdLogin/siqLogin", "/appLogin","/login","/index",
"/enterpriseInformation",
"/code/registration",
"/code/linkage",
@@ -80,11 +78,14 @@ public class ResourcesConfig implements WebMvcConfigurer
"/monitor/operlog",
"/monitor/logininfor",
"/system/dict",
-// "/system/config",
+ "/system/config",
"/monitor/job",
"/statistical/analysis",
- "/statistical/view"
- );
+ "/statistical/view",
+ "/**/*.css",
+ "/**/*.js", "/**/*.png", "/**/*.jpg",
+ "/**/*.jpeg", "/**/*.gif", "/**/fonts/*"
+ ).addPathPatterns("/**");
// 除了登录放行,其他接口都token验证
}
}
\ No newline at end of file
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java
index 17fe8dfc..a7762ad5 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/ShiroConfig.java
@@ -180,7 +180,8 @@ public class ShiroConfig {
@Bean
public SessionManager sessionManager()
{
- DefaultWebSessionManager manager = new DefaultWebSessionManager();
+// DefaultWebSessionManager manager = new DefaultWebSessionManager();
+ MyDefaultWebSessionManager manager = new MyDefaultWebSessionManager();
// 加入缓存管理器
manager.setCacheManager(redisCacheManager());
// 去掉 JSESSIONID
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/SpringSessionConfiguration.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/SpringSessionConfiguration.java
new file mode 100644
index 00000000..fe6cf160
--- /dev/null
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/SpringSessionConfiguration.java
@@ -0,0 +1,25 @@
+package com.zdxt.auth.framework.config;
+
+import org.apache.tomcat.util.http.SameSiteCookies;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.session.web.http.CookieSerializer;
+import org.springframework.session.web.http.DefaultCookieSerializer;
+
+
+@Configuration
+public class SpringSessionConfiguration {
+
+ @Bean
+ public CookieSerializer cookieSerializer() {
+ DefaultCookieSerializer serializer = new DefaultCookieSerializer ();
+ serializer.setCookieName("JSESSIONID");
+ serializer.setDomainName("localhost");
+ serializer.setCookiePath("/**");
+ serializer.setCookieMaxAge(3600);
+ serializer.setSameSite(SameSiteCookies.LAX.getValue()); // 设置SameSite属性
+ serializer.setUseHttpOnlyCookie(true);
+// serializer.setUseSecureCookie(true);
+ return serializer;
+ }
+}
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/TomcatConfig.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/TomcatConfig.java
index 1b539cb5..9b08f2bd 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/TomcatConfig.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/TomcatConfig.java
@@ -1,58 +1,58 @@
-//package com.zdxt.auth.framework.config;
-//
-//import org.apache.catalina.Context;
-//import org.apache.tomcat.util.descriptor.web.SecurityCollection;
-//import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
-//import org.apache.tomcat.util.http.Rfc6265CookieProcessor;
-//import org.apache.tomcat.util.http.SameSiteCookies;
-//import org.springframework.boot.web.embedded.tomcat.TomcatContextCustomizer;
-//import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
-//import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//
-//@Configuration
-//public class TomcatConfig {
-//
-// @Bean
-// public ServletWebServerFactory servletContainer() {
-//
-// TomcatServletWebServerFactory tomcatServletContainerFactory = new TomcatServletWebServerFactory();
-//
-// tomcatServletContainerFactory.addContextCustomizers(new TomcatContextCustomizer(){
-//
-// @Override
-// public void customize(Context context) {
-// SecurityConstraint constraint = new SecurityConstraint();
-// SecurityCollection collection = new SecurityCollection();
-// //http方法
-// collection.addMethod("PUT");
-// collection.addMethod("DELETE");
-// collection.addMethod("HEAD");
-//// collection.addMethod("OPTIONS");
-// collection.addMethod("TRACE");
-// //url匹配表达式 所有路径
-// collection.addPattern("/*");
-// constraint.addCollection(collection);
-// //设置以上HTTP方法在指定路径下需要身份验证约束
-// constraint.setAuthConstraint(true);
-// context.addConstraint(constraint);
-//
-// //设置使用httpOnly
-// context.setUseHttpOnly(true);
-// }
-// });
-// return tomcatServletContainerFactory;
-// }
-// //tomcat配置
-// @Bean
-// public TomcatContextCustomizer sameSiteCookiesConfig() {
-// return context -> {
-// final Rfc6265CookieProcessor cookieProcessor = new Rfc6265CookieProcessor();
-// // 设置Cookie的SameSite
-// cookieProcessor.setSameSiteCookies(SameSiteCookies.STRICT.getValue());
-// context.setCookieProcessor(cookieProcessor);
-// };
-// }
-//}
-//
+package com.zdxt.auth.framework.config;
+
+import org.apache.catalina.Context;
+import org.apache.tomcat.util.descriptor.web.SecurityCollection;
+import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
+import org.apache.tomcat.util.http.Rfc6265CookieProcessor;
+import org.apache.tomcat.util.http.SameSiteCookies;
+import org.springframework.boot.web.embedded.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class TomcatConfig {
+
+ @Bean
+ public ServletWebServerFactory servletContainer() {
+
+ TomcatServletWebServerFactory tomcatServletContainerFactory = new TomcatServletWebServerFactory();
+
+ tomcatServletContainerFactory.addContextCustomizers(new TomcatContextCustomizer(){
+
+ @Override
+ public void customize(Context context) {
+ SecurityConstraint constraint = new SecurityConstraint();
+ SecurityCollection collection = new SecurityCollection();
+ //http方法
+ collection.addMethod("PUT");
+ collection.addMethod("DELETE");
+ collection.addMethod("HEAD");
+// collection.addMethod("OPTIONS");
+ collection.addMethod("TRACE");
+ //url匹配表达式 所有路径
+ collection.addPattern("/*");
+ constraint.addCollection(collection);
+ //设置以上HTTP方法在指定路径下需要身份验证约束
+ constraint.setAuthConstraint(true);
+ context.addConstraint(constraint);
+
+ //设置使用httpOnly
+ context.setUseHttpOnly(true);
+ }
+ });
+ return tomcatServletContainerFactory;
+ }
+ //tomcat配置
+ @Bean
+ public TomcatContextCustomizer sameSiteCookiesConfig() {
+ return context -> {
+ final Rfc6265CookieProcessor cookieProcessor = new Rfc6265CookieProcessor();
+ // 设置Cookie的SameSite
+ cookieProcessor.setSameSiteCookies(SameSiteCookies.LAX.getValue());
+ context.setCookieProcessor(cookieProcessor);
+ };
+ }
+}
+
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java
index 5fb413b4..75dd74a2 100644
--- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/controller/LoginController.java
@@ -164,8 +164,7 @@ public class LoginController extends BaseController
//return null;
} else { //PC
subject.login(token);
-
- return success("登录成功");
+ return success();
}
} catch (AuthenticationException e) {
String msg = "用户或密码错误";
@@ -178,20 +177,20 @@ public class LoginController extends BaseController
@PostMapping("/appLogin")
@ResponseBody
- public AjaxResult appLogin(String username, String secretKey, Boolean rememberMe, String type, String clientid) {
+ public AjaxResult appLogin(String secretName, String secretKey) {
SecurityUtils.getSubject().logout();
// username = username.toUpperCase();
//解密
secretKey = AesHelper.desEncrypt(secretKey);
// UsernamePasswordToken token = new UsernamePasswordToken(username, password, false);
- UserToken token = new UserToken(username, secretKey, LoginType.PASSWORD);
+ UserToken token = new UserToken(secretName, secretKey, LoginType.PASSWORD);
Subject subject = SecurityUtils.getSubject();
try {
//PC
subject.login(token);
// 把 tonken 塞进去
- User userDB = iUserService.selectUserByLoginName(username);
+ User userDB = iUserService.selectUserByLoginName(secretName);
Map payload = new HashMap<>();
payload.put("id", userDB.getUserId());
payload.put("name", userDB.getLoginName());
diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/domain/LoginDTO.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/domain/LoginDTO.java
new file mode 100644
index 00000000..dc2efa91
--- /dev/null
+++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/user/domain/LoginDTO.java
@@ -0,0 +1,22 @@
+package com.zdxt.auth.project.system.user.domain;
+
+public class LoginDTO {
+ String secretName;
+ String secretKey;
+
+ public String getSecretName() {
+ return secretName;
+ }
+
+ public void setSecretName(String secretName) {
+ this.secretName = secretName;
+ }
+
+ public String getSecretKey() {
+ return secretKey;
+ }
+
+ public void setSecretKey(String secretKey) {
+ this.secretKey = secretKey;
+ }
+}
diff --git a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/index.html b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/index.html
index 2bc92775..845ed974 100644
--- a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/index.html
+++ b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/index.html
@@ -382,6 +382,7 @@
var excludesUrl = ["/system/user/profile"];
var token = [[${token}]];
console.log(token);
+ console.log(document.cookie);
// 本地主题优先,未设置取系统配置
if ($.common.isNotEmpty(skin)) {