feat: 网关与auth微服务缓存打通
This commit is contained in:
@@ -40,6 +40,11 @@
|
|||||||
<artifactId>jc-club-auth-common</artifactId>
|
<artifactId>jc-club-auth-common</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-core</artifactId>
|
||||||
|
<version>2.12.7</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
<artifactId>jackson-databind</artifactId>
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
@@ -1,24 +1,25 @@
|
|||||||
package com.landaiqing.auth.domain.service.impl;
|
package com.landaiqing.auth.domain.service.impl;
|
||||||
|
|
||||||
import cn.dev33.satoken.secure.SaSecureUtil;
|
import cn.dev33.satoken.secure.SaSecureUtil;
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.landaiqing.auth.common.enums.AuthUserStatusEnum;
|
import com.landaiqing.auth.common.enums.AuthUserStatusEnum;
|
||||||
import com.landaiqing.auth.common.enums.IsDeletedFlagEnum;
|
import com.landaiqing.auth.common.enums.IsDeletedFlagEnum;
|
||||||
import com.landaiqing.auth.domain.constants.AuthConstant;
|
import com.landaiqing.auth.domain.constants.AuthConstant;
|
||||||
import com.landaiqing.auth.domain.convert.AuthUserBOConverter;
|
import com.landaiqing.auth.domain.convert.AuthUserBOConverter;
|
||||||
import com.landaiqing.auth.domain.entity.AuthUserBO;
|
import com.landaiqing.auth.domain.entity.AuthUserBO;
|
||||||
|
import com.landaiqing.auth.domain.redis.RedisUtil;
|
||||||
import com.landaiqing.auth.domain.service.AuthUserDomainService;
|
import com.landaiqing.auth.domain.service.AuthUserDomainService;
|
||||||
import com.landaiqing.auth.infra.basic.entity.AuthRole;
|
import com.landaiqing.auth.infra.basic.entity.*;
|
||||||
import com.landaiqing.auth.infra.basic.entity.AuthUser;
|
import com.landaiqing.auth.infra.basic.service.*;
|
||||||
import com.landaiqing.auth.infra.basic.entity.AuthUserRole;
|
|
||||||
import com.landaiqing.auth.infra.basic.service.AuthRoleService;
|
|
||||||
import com.landaiqing.auth.infra.basic.service.AuthUserRoleService;
|
|
||||||
import com.landaiqing.auth.infra.basic.service.AuthUserService;
|
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -33,6 +34,17 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
|
|||||||
@Resource
|
@Resource
|
||||||
private AuthRoleService authRoleService;
|
private AuthRoleService authRoleService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AuthPermissionService authPermissionService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AuthRolePermissionService authRolePermissionService;
|
||||||
|
@Resource
|
||||||
|
private RedisUtil redisUtil;
|
||||||
|
private String authPermissionPrefix = "auth.permission";
|
||||||
|
|
||||||
|
private String authRolePrefix = "auth.role";
|
||||||
|
|
||||||
private String salt="landaiqing";
|
private String salt="landaiqing";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -56,6 +68,23 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
|
|||||||
authUserRole.setRoleId(roleId);
|
authUserRole.setRoleId(roleId);
|
||||||
authUserRole.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
|
authUserRole.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
|
||||||
authUserRoleService.insert(authUserRole);
|
authUserRoleService.insert(authUserRole);
|
||||||
|
|
||||||
|
String roleKey = redisUtil.buildKey(authRolePrefix, authUser.getUserName());
|
||||||
|
List<AuthRole> roleList = new LinkedList<>();
|
||||||
|
roleList.add(authRole);
|
||||||
|
redisUtil.set(roleKey, new Gson().toJson(roleList));
|
||||||
|
|
||||||
|
AuthRolePermission authRolePermission = new AuthRolePermission();
|
||||||
|
authRolePermission.setRoleId(roleId);
|
||||||
|
List<AuthRolePermission> rolePermissionList = authRolePermissionService.
|
||||||
|
queryByCondition(authRolePermission);
|
||||||
|
|
||||||
|
List<Long> permissionIdList = rolePermissionList.stream()
|
||||||
|
.map(AuthRolePermission::getPermissionId).collect(Collectors.toList());
|
||||||
|
//根据roleId查权限
|
||||||
|
List<AuthPermission> permissionList = authPermissionService.queryByRoleList(permissionIdList);
|
||||||
|
String permissionKey = redisUtil.buildKey(authPermissionPrefix, authUser.getUserName());
|
||||||
|
redisUtil.set(permissionKey, new Gson().toJson(permissionList));
|
||||||
return count > 0;
|
return count > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -74,4 +74,5 @@ public class AuthRolePermissionServiceImpl implements AuthRolePermissionService
|
|||||||
return this.authRolePermissionDao.queryAllByLimit(authRolePermission);
|
return this.authRolePermissionDao.queryAllByLimit(authRolePermission);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user