From 9d469ad7e2c11a3ee5fe3cb5da711a3af335747b Mon Sep 17 00:00:00 2001 From: DELL Date: Wed, 27 Mar 2024 13:41:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=9F=E6=88=90=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E7=A0=81=E6=8E=A5=E5=8F=A3=E4=B8=BA4=E4=BD=8D?= =?UTF-8?q?=E6=95=B0=E9=AA=8C=E8=AF=81=E7=A0=81=EF=BC=8C=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E7=A7=9F=E6=88=B7=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=86=BB=E7=BB=93=E5=88=A4=E6=96=AD=EF=BC=8C=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E5=8F=B7=E6=98=AF=E5=90=A6=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/base/service/UserTokenService.java | 7 +++++++ .../MyAuthenticationProvider.java | 10 ++++++++++ .../service/impl/SmsLoginServiceImpl.java | 2 +- .../service/impl/UserTokenServiceImpl.java | 18 ++++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/service/UserTokenService.java b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/service/UserTokenService.java index 1ad8f115..8a2083f3 100644 --- a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/service/UserTokenService.java +++ b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/service/UserTokenService.java @@ -131,4 +131,11 @@ public interface UserTokenService { * @return */ public Long listMobileCount(String otherno,String mobile); + + + /** + * 查询租户状态是否禁用 + * @return + */ + boolean getTenantStatus(String agentcode); } diff --git a/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/authentication/MyAuthenticationProvider.java b/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/authentication/MyAuthenticationProvider.java index 0732359c..03c4a6b4 100644 --- a/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/authentication/MyAuthenticationProvider.java +++ b/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/authentication/MyAuthenticationProvider.java @@ -17,8 +17,12 @@ import cn.jyjz.xiaoyao.framework.security.captcha.utile.CaptchUtil; import cn.jyjz.xiaoyao.framework.security.model.AdminUserModel; import cn.jyjz.xiaoyao.framework.security.service.FlowableUserLoginService; import cn.jyjz.xiaoyao.framework.security.service.OnlineUserService; + +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationProvider; @@ -120,6 +124,10 @@ public class MyAuthenticationProvider implements AuthenticationProvider { throw new AuthenticationServiceException("企业编码错误!"); } + boolean tenantStatus = userTokenService.getTenantStatus(agentcode); + if (!tenantStatus) { + throw new AuthenticationServiceException("该租户已被冻结!"); + } if(!"admin".equals(loginname) && userTokenService.listCount(agentcode,loginname).intValue() <= 0){ throw new AuthenticationServiceException("账号不存在!"); } @@ -128,6 +136,8 @@ public class MyAuthenticationProvider implements AuthenticationProvider { User user = userTokenService.findByLoginname(loginname); if(null == user){ throw new AuthenticationServiceException("账号密码不正确"); + }else if(user.getEnabled() == 0){ + throw new AuthenticationServiceException("该账号被禁用"); } //TODO 处理同一个用户,多次登录 diff --git a/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java b/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java index a882b467..f7f513b4 100644 --- a/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java +++ b/jyjz-framework/jyjz-framework-securityweb/src/main/java/cn/jyjz/xiaoyao/framework/security/service/impl/SmsLoginServiceImpl.java @@ -58,7 +58,7 @@ public class SmsLoginServiceImpl implements SmsLoginService { return ResultVoUtil.error("请输入正确的手机号。"); } //生成验证码 - String code = RandomUtil.randomNumbers(6); + String code = RandomUtil.randomNumbers(4); //TODO 发送短信 Map map=new HashMap<>(); diff --git a/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/service/impl/UserTokenServiceImpl.java b/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/service/impl/UserTokenServiceImpl.java index 83b9cc92..02a58fbf 100644 --- a/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/service/impl/UserTokenServiceImpl.java +++ b/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/service/impl/UserTokenServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.jyjz.xiaoyao.admin.dataobject.Department; import cn.jyjz.xiaoyao.admin.dataobject.Oauthuser; import cn.jyjz.xiaoyao.admin.dataobject.Roles; +import cn.jyjz.xiaoyao.admin.dataobject.Tenant; import cn.jyjz.xiaoyao.admin.service.*; import cn.jyjz.xiaoyao.common.base.config.XiaoyaoConfig; import cn.jyjz.xiaoyao.common.base.exception.CommonExceptionCodeEnum; @@ -34,6 +35,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.auth0.jwt.exceptions.TokenExpiredException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -79,6 +81,9 @@ public class UserTokenServiceImpl implements UserTokenService { @Resource private UserTokenOnlineService userTokenOnlineService; + + @Autowired + private TenantService tenantService; public User findByLoginname(String loginname) { @@ -380,4 +385,17 @@ public class UserTokenServiceImpl implements UserTokenService { public Long listMobileCount(String otherno,String mobile){ return userTenantService.listMobileCount(otherno,mobile); } + + + /** + * 查询租户状态是否禁用 + * @return + */ + @Override + public boolean getTenantStatus(String agentcode){ + LambdaQueryWrapper tenantLambdaQueryWrapper = new LambdaQueryWrapper<>(); + tenantLambdaQueryWrapper.eq(Tenant::getOtherno,agentcode); + Tenant tenant = tenantService.getOne(tenantLambdaQueryWrapper); + return tenant != null && tenant.getStatus() == 0; + } }