From 5af5f0b16363825b498e12447e30dcec1c082f2b Mon Sep 17 00:00:00 2001 From: lhc Date: Wed, 25 Aug 2021 10:17:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/common/config/FrameConfig.java | 1 + .../base/common/config/SimpleCORSFilter.java | 18 ++++++++--------- .../hcframe/base/common/utils/ObjectUtil.java | 5 +++++ .../hcframe/base/module/shiro/AuthFilter.java | 20 +++++++++---------- .../base/module/shiro/CustomRealm.java | 10 ++++++---- .../base/module/shiro/NoStateFilter.java | 6 +++--- 6 files changed, 34 insertions(+), 26 deletions(-) diff --git a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/FrameConfig.java b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/FrameConfig.java index 3d8c185..fa7b8a1 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/FrameConfig.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/FrameConfig.java @@ -13,4 +13,5 @@ public class FrameConfig { private Boolean showControllerLog = true; private Boolean multiDataSource = true; private Boolean cas = false; + private Boolean singleClientLogin= false; } diff --git a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/SimpleCORSFilter.java b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/SimpleCORSFilter.java index 914e893..418c243 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/SimpleCORSFilter.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/config/SimpleCORSFilter.java @@ -27,15 +27,15 @@ public class SimpleCORSFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { -// HttpServletRequest httpServletRequest = (HttpServletRequest) request; -// String myOrigin = httpServletRequest.getHeader("origin"); -// HttpServletResponse httpServletResponse = (HttpServletResponse) response; -// httpServletResponse.setHeader("Access-Control-Allow-Origin", myOrigin); -// httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT"); -// httpServletResponse.setHeader("Access-Control-Max-Age", "3600"); -// httpServletResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); -// // 是否支持cookie跨域 -// httpServletResponse.addHeader("Access-Control-Allow-Credentials", "true"); + HttpServletRequest httpServletRequest = (HttpServletRequest) request; + String myOrigin = httpServletRequest.getHeader("origin"); + HttpServletResponse httpServletResponse = (HttpServletResponse) response; + httpServletResponse.setHeader("Access-Control-Allow-Origin", myOrigin); + httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT"); + httpServletResponse.setHeader("Access-Control-Max-Age", "3600"); + httpServletResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); + // 是否支持cookie跨域 + httpServletResponse.addHeader("Access-Control-Allow-Credentials", "true"); chain.doFilter(request, response); } diff --git a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/utils/ObjectUtil.java b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/utils/ObjectUtil.java index 99044f4..5fa9ee8 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/utils/ObjectUtil.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/common/utils/ObjectUtil.java @@ -22,6 +22,7 @@ public class ObjectUtil { private static final String STRING = "class java.lang.String"; private static final String INTEGER = "class java.lang.Integer"; private static final String LONG = "class java.lang.LONG"; + private static final String BIG_INTEGER = "class java.math.BigInteger"; public static Map objToMap(Object obj) { Class clazz = obj.getClass(); @@ -142,6 +143,10 @@ public class ObjectUtil { if (LONG.equals(str)) { value = Long.valueOf(value.toString()); } + if (BIG_INTEGER.equals(str)) { + value = Long.valueOf(value.toString()); + } + try { field.set(obj, value); } catch (IllegalAccessException e) { diff --git a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/AuthFilter.java b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/AuthFilter.java index 3467340..57f400f 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/AuthFilter.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/AuthFilter.java @@ -39,10 +39,10 @@ public class AuthFilter extends AuthenticatingFilter { HttpServletResponse httpResponse = (HttpServletResponse) response; HttpServletRequest httpServletRequest = (HttpServletRequest) request; String myOrigin = httpServletRequest.getHeader("origin"); - httpResponse.setContentType("application/json;charset=utf-8"); - httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); - httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); - httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); +// httpResponse.setContentType("application/json;charset=utf-8"); +// httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); +// httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); +// httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); httpResponse.setCharacterEncoding("UTF-8"); Map result = new HashMap<>(2); result.put("code", 3); @@ -82,9 +82,9 @@ public class AuthFilter extends AuthenticatingFilter { HttpServletRequest httpServletRequest = (HttpServletRequest) request; String myOrigin = httpServletRequest.getHeader("origin"); httpResponse.setContentType("application/json;charset=utf-8"); - httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); - httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); - httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); +// httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); +// httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); +// httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); httpResponse.setCharacterEncoding("UTF-8"); Map result = new HashMap<>(2); result.put("code", 3); @@ -108,11 +108,11 @@ public class AuthFilter extends AuthenticatingFilter { //处理登录失败的异常 HttpServletResponse httpResponse = (HttpServletResponse) response; httpResponse.setContentType("application/json;charset=utf-8"); - httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); +// httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); HttpServletRequest httpServletRequest = (HttpServletRequest) request; String myOrigin = httpServletRequest.getHeader("origin"); - httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); - httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); +// httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); +// httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); httpResponse.setCharacterEncoding("UTF-8"); try { //处理登录失败的异常 diff --git a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/CustomRealm.java b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/CustomRealm.java index 7a1d712..de7fb20 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/CustomRealm.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/CustomRealm.java @@ -66,10 +66,12 @@ public class CustomRealm extends AuthorizingRealm { if (userId == null) { throw new IncorrectCredentialsException("token失效,请重新登录"); } - String tokenStr = (String) redisUtil.hget("session", String.valueOf(userId)); - if (tokenStr == null || !tokenStr.equals(accessToken)) { - redisUtil.del(accessToken); - throw new IncorrectCredentialsException("token失效,请重新登录"); + if (frameConfig.getSingleClientLogin()) { + String tokenStr = (String) redisUtil.hget("session", String.valueOf(userId)); + if (tokenStr == null || !tokenStr.equals(accessToken)) { + redisUtil.del(accessToken); + throw new IncorrectCredentialsException("token失效,请重新登录"); + } } Date expireTime = (Date) hashMap.get("expireTime"); System.out.println(expireTime); diff --git a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/NoStateFilter.java b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/NoStateFilter.java index 2807490..930b208 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/NoStateFilter.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/hcframe/base/module/shiro/NoStateFilter.java @@ -35,9 +35,9 @@ public class NoStateFilter extends AccessControlFilter { HttpServletRequest httpServletRequest = (HttpServletRequest) request; String myOrigin = httpServletRequest.getHeader("origin"); httpResponse.setContentType("application/json;charset=utf-8"); - httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); - httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); - httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); +// httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); +// httpResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with, X-Access-Token, datasource-Key"); +// httpResponse.setHeader("Access-Control-Allow-Origin", myOrigin); httpResponse.setCharacterEncoding("UTF-8"); Map result = new HashMap<>(); result.put("code", 3);