diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index 9bea70c..3226b17 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -89,6 +89,8 @@ public class ShiroConfig { filterChainDefinitionMap.put("/sys/checkCaptcha", "anon"); //登录验证码接口排除 filterChainDefinitionMap.put("/sys/smsCheckCaptcha", "anon"); //短信次数发送太多验证码排除 filterChainDefinitionMap.put("/sys/login", "anon"); //登录接口排除 + filterChainDefinitionMap.put("/sys/autoLogin", "anon"); //网关自动登录 + filterChainDefinitionMap.put("/sys/ipAutoLogin", "anon"); //IP自动登录 filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/logout", "anon"); //登出接口排除 filterChainDefinitionMap.put("/sys/thirdLogin/**", "anon"); //第三方登录 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java index cba65da..9af4140 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -136,6 +136,48 @@ public class LoginController { } + /** + * 网关自动登录 — 按 username 匹配用户,跳过密码验证 + */ + @Operation(summary = "网关自动登录") + @RequestMapping(value = "/autoLogin", method = RequestMethod.POST) + public Result autoLogin(String username, String password, + HttpServletRequest request, HttpServletResponse response) throws Exception { + Result result = new Result<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUser::getUsername, username); + SysUser sysUser = sysUserService.getOne(queryWrapper); + result = sysUserService.checkUserIsEffective(sysUser); + if (!result.isSuccess()) { + result.setMessage("登录失败"); + return result; + } + // 密码验证跳过 — 网关已认证 + userInfo(sysUser, result, request); + return result; + } + + /** + * IP自动登录 — 仅按 username 匹配用户,跳过密码验证 + */ + @Operation(summary = "IP自动登录") + @RequestMapping(value = "/ipAutoLogin", method = RequestMethod.POST) + public Result ipAutoLogin(String username, String password, + HttpServletRequest request, HttpServletResponse response) throws Exception { + Result result = new Result<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUser::getUsername, username); + SysUser sysUser = sysUserService.getOne(queryWrapper); + result = sysUserService.checkUserIsEffective(sysUser); + if (!result.isSuccess()) { + result.setMessage("登录失败"); + return result; + } + // 密码验证跳过 — 网关已认证 + userInfo(sysUser, result, request); + return result; + } + /** * 【vue3专用】获取用户信息 */