优化获取是否管理员自动的方式,去除登出接口组织id依赖

This commit is contained in:
yangsb
2024-04-26 15:25:03 +08:00
parent 0fb3bca338
commit 522108aaa8
11 changed files with 48 additions and 7 deletions
@@ -32,5 +32,7 @@ public class OAuth2AccessTokenCheckRespDTO implements Serializable {
private String dataCode;
@Schema(description = "用户昵称")
private String nickname;
@Schema(description = "是否超级管理员")
private Boolean isSupAdmin;
}
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -90,4 +91,8 @@ public class OAuth2AccessTokenDO extends BaseDO {
* 用户昵称
*/
private String nickname;
/**
* 是否超级管理员
*/
private Boolean isSupAdmin;
}
@@ -83,5 +83,9 @@ public class OAuth2RefreshTokenDO extends BaseDO {
* 用户昵称
*/
private String nickname;
/**
* 是否超级管理员
*/
private Boolean isSupAdmin;
}
@@ -7,6 +7,7 @@ import com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.date.DateUtils;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.framework.security.core.service.SecurityFrameworkService;
import com.cf.imes.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO;
import com.cf.imes.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import com.cf.imes.module.system.dal.dataobject.oauth2.OAuth2ClientDO;
@@ -43,6 +44,9 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
@Resource
private OAuth2ClientService oauth2ClientService;
@Resource
private SecurityFrameworkService securityFrameworkService;
@Override
@Transactional
public OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List<String> scopes,Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) {
@@ -140,7 +144,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
.setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds()))
.setLarge(refreshTokenDO.getLarge()).setDbNo(refreshTokenDO.getDbNo()).setTableNo(refreshTokenDO.getTableNo())
.setDataCode(refreshTokenDO.getDataCode()).setOrganId(refreshTokenDO.getOrganId())
.setNickname(refreshTokenDO.getNickname())
.setNickname(refreshTokenDO.getNickname()).setIsSupAdmin(refreshTokenDO.getIsSupAdmin())
;
//accessTokenDO.setOrganId(OrganContextHolder.getOrganId()); // 手动设置组织编号,避免缓存到 Redis 的时候,无对应的组织编号
oauth2AccessTokenMapper.insert(accessTokenDO);
@@ -157,6 +161,8 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
.setLarge(large).setDbNo(dbNo).setTableNo(tableNo).setDataCode(dataCode)
.setOrganId(organId).setNickname(nickname)
;
boolean b = securityFrameworkService.hasAnyRoles(userId,"super_admin");
refreshToken.setIsSupAdmin(b);
oauth2RefreshTokenMapper.insert(refreshToken);
return refreshToken;
}
@@ -158,6 +158,7 @@ chenfeng:
- /admin-api/system/machine-template/*
- /admin-api/system/data-source/*
- /admin-api/system/auth/login
- /admin-api/system/auth/logout
- /rpc-api/**
#- /admin-api/system/**
#- /rpc-api/system/organ/valid # 防止递归。避免调用 /rpc-api/system/organ/valid 接口时,又去触发 /rpc-api/system/organ/valid 去校验