diff --git a/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java b/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java index 9fc7b87..5723f4d 100644 --- a/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java +++ b/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java @@ -234,6 +234,12 @@ public class SysBaseAPIFallback implements ISysBaseAPI { log.error("服务节点不通,导致获取登录用户信息失败: " + cause.getMessage(), cause); return null; } + + @Override + public HanHaiMember getUserByNameHanHaiXcxOpenId(String username) { + log.error("服务节点不通,导致获取登录用户信息失败: " + cause.getMessage(), cause); + return null; + } // // @Override // public DbMumber getUserByName3(String username,Integer isOrgan) { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/CommonAPI.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/CommonAPI.java index c740ea7..4ba8f5f 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/CommonAPI.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/CommonAPI.java @@ -63,6 +63,13 @@ public interface CommonAPI { * */ public HanHaiMember getUserByNameHanHaiAccount(String username); + /** + * 小程序验证 - 小程序openid验证 + * @param username + * @return + * */ + public HanHaiMember getUserByNameHanHaiXcxOpenId(String username); + /** diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java index 83cecf2..930874f 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java @@ -68,7 +68,7 @@ public class Swagger2Config implements WebMvcConfigurer { .apiInfo(apiInfo()) .select() //此包路径下的类,才生成接口文档 - .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.api")) + .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.api.studytourController")) //加了ApiOperation注解的类,才生成接口文档 .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index ac70b7f..0349250 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -72,6 +72,8 @@ public class ShiroConfig { } } + filterChainDefinitionMap.put("/studytour/**", "anon"); //小程序验证放开 + filterChainDefinitionMap.put("/sys/oss/file/upload", "anon"); //图片上传验证放开 filterChainDefinitionMap.put("/sys/common/upload", "anon"); //图片上传验证放开 filterChainDefinitionMap.put("/sys/cas/client/validateLogin", "anon"); //cas验证登录 diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java index d265473..55c56ad 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java @@ -190,6 +190,36 @@ public class ShiroRealm extends AuthorizingRealm { return user; } + /** + * 校验token的有效性 + * + * @param token + */ + public HanHaiMember checkUserTokenIsEffectHanHaiOpenId(String token) throws AuthenticationException { + Result result = new Result(); + // 解密获得username,用于和数据库进行对比 + String openid = JwtUtil.getUsername(token); + if (openid == null) { + throw new AuthenticationException("token非法无效!"); + } + + // 查询用户信息 + log.debug("———校验token是否有效————checkUserTokenIsEffect——————— "+ token); + HanHaiMember user = commonApi.getUserByNameHanHaiXcxOpenId(openid); + if (user == null || user.getAppletOpenid() == null) { + throw new AuthenticationException("用户不存在!"); + } +// // 判断用户状态 +// if (user.getDeleteFlag().equals("Y")) { +// throw new AuthenticationException("账号已被注销,请联系管理员!"); +// } + // 校验token是否超时失效 & 或者账号密码是否错误 + if (!jwtTokenRefresh(token, openid, openid)) { + throw new JeecgBoot401Exception(CommonConstant.TOKEN_IS_INVALID_MSG); + } + return user; + } + /**