|
|
@@ -17,10 +17,14 @@
|
|
|
package org.springblade.modules.auth.granter;
|
|
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.core.log.exception.ServiceException;
|
|
|
import org.springblade.core.tool.utils.DigestUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.modules.auth.enums.BladeUserEnum;
|
|
|
+import org.springblade.modules.auth.utils.TokenUtil;
|
|
|
+import org.springblade.modules.system.entity.Tenant;
|
|
|
import org.springblade.modules.system.entity.UserInfo;
|
|
|
+import org.springblade.modules.system.service.ITenantService;
|
|
|
import org.springblade.modules.system.service.IUserService;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
@@ -35,7 +39,8 @@ public class PasswordTokenGranter implements ITokenGranter {
|
|
|
|
|
|
public static final String GRANT_TYPE = "password";
|
|
|
|
|
|
- private IUserService service;
|
|
|
+ private IUserService userService;
|
|
|
+ private ITenantService tenantService;
|
|
|
|
|
|
@Override
|
|
|
public UserInfo grant(TokenParameter tokenParameter) {
|
|
|
@@ -44,15 +49,20 @@ public class PasswordTokenGranter implements ITokenGranter {
|
|
|
String password = tokenParameter.getArgs().getStr("password");
|
|
|
UserInfo userInfo = null;
|
|
|
if (Func.isNoneBlank(username, password)) {
|
|
|
+ // 获取租户信息
|
|
|
+ Tenant tenant = tenantService.getByTenantId(tenantId);
|
|
|
+ if (!TokenUtil.judgeTenant(tenant)) {
|
|
|
+ throw new ServiceException(TokenUtil.USER_HAS_NO_TENANT_PERMISSION);
|
|
|
+ }
|
|
|
// 获取用户类型
|
|
|
String userType = tokenParameter.getArgs().getStr("userType");
|
|
|
// 根据不同用户类型调用对应的接口返回数据,用户可自行拓展
|
|
|
if (userType.equals(BladeUserEnum.WEB.getName())) {
|
|
|
- userInfo = service.userInfo(tenantId, username, DigestUtil.encrypt(password));
|
|
|
+ userInfo = userService.userInfo(tenantId, username, DigestUtil.encrypt(password));
|
|
|
} else if (userType.equals(BladeUserEnum.APP.getName())) {
|
|
|
- userInfo = service.userInfo(tenantId, username, DigestUtil.encrypt(password));
|
|
|
+ userInfo = userService.userInfo(tenantId, username, DigestUtil.encrypt(password));
|
|
|
} else {
|
|
|
- userInfo = service.userInfo(tenantId, username, DigestUtil.encrypt(password));
|
|
|
+ userInfo = userService.userInfo(tenantId, username, DigestUtil.encrypt(password));
|
|
|
}
|
|
|
}
|
|
|
return userInfo;
|