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; + } }