mirror of https://gitee.com/stylefeng/roses
【7.1.6】新增获取用户信息的接口
parent
95e7dc7148
commit
998a761483
|
@ -75,6 +75,6 @@ public interface ScannerConstants {
|
||||||
/**
|
/**
|
||||||
* DevOps平台资源汇报路径
|
* DevOps平台资源汇报路径
|
||||||
*/
|
*/
|
||||||
String DEVOPS_REQUEST_PATH = "/resource/addExternalResource";
|
String DEVOPS_REQUEST_PATH = "/scannerResource/addExternalResource";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,5 +76,15 @@ public class SystemConfigExpander {
|
||||||
public static String getDefaultPassWord() {
|
public static String getDefaultPassWord() {
|
||||||
return ConfigContext.me().getSysConfigValueWithDefault("SYS_DEFAULT_PASSWORD", String.class, DEFAULT_PASSWORD);
|
return ConfigContext.me().getSysConfigValueWithDefault("SYS_DEFAULT_PASSWORD", String.class, DEFAULT_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取开发开关的状态
|
||||||
|
*
|
||||||
|
* @return {@link Boolean}
|
||||||
|
* @author majianguo
|
||||||
|
* @date 2022/1/17 14:59
|
||||||
|
**/
|
||||||
|
public static Boolean getDevSwitchStatus() {
|
||||||
|
return ConfigContext.me().getSysConfigValueWithDefault("DEVOPS_DEV_SWITCH_STATUS", Boolean.class, Boolean.FALSE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,13 @@
|
||||||
<version>${roses.version}</version>
|
<version>${roses.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--登录sdk-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>auth-sdk</artifactId>
|
||||||
|
<version>${roses.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!--web模块-->
|
<!--web模块-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|
|
@ -256,4 +256,27 @@ public class SysUserController {
|
||||||
return new SuccessResponseData<>(sysUserService.selector(sysUserRequest));
|
return new SuccessResponseData<>(sysUserService.selector(sysUserRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有用户ID和名称列表
|
||||||
|
*
|
||||||
|
* @return {@link ResponseData< List< SysUserRequest>>}
|
||||||
|
* @author majianguo
|
||||||
|
* @date 2022/1/17 14:24
|
||||||
|
**/
|
||||||
|
@GetResource(name = "获取所有用户ID和名称列表", path = "/sysUser/getAllUserIdList")
|
||||||
|
public ResponseData<List<SysUserRequest>> getAllUserIdList() {
|
||||||
|
return new SuccessResponseData<>(sysUserService.getAllUserIdList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户主键获取用户对应的token
|
||||||
|
*
|
||||||
|
* @return {@link ResponseData< List< SysUserRequest>>}
|
||||||
|
* @author majianguo
|
||||||
|
* @date 2022/1/17 14:24
|
||||||
|
**/
|
||||||
|
@GetResource(name = "根据用户主键获取用户对应的token", path = "/sysUser/getTokenByUserId")
|
||||||
|
public ResponseData<String> getTokenByUserId(Long userId) {
|
||||||
|
return new SuccessResponseData<>(sysUserService.getTokenByUserId(userId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -246,4 +246,22 @@ public interface SysUserService extends IService<SysUser>, UserServiceApi {
|
||||||
*/
|
*/
|
||||||
List<Long> getAllUserIds();
|
List<Long> getAllUserIds();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有用户ID和名称列表
|
||||||
|
*
|
||||||
|
* @return {@link List< SysUserRequest>}
|
||||||
|
* @author majianguo
|
||||||
|
* @date 2022/1/17 15:05
|
||||||
|
**/
|
||||||
|
List<SysUserRequest> getAllUserIdList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户主键获取用户对应的token
|
||||||
|
*
|
||||||
|
* @param userId
|
||||||
|
* @return {@link String}
|
||||||
|
* @author majianguo
|
||||||
|
* @date 2022/1/17 15:05
|
||||||
|
**/
|
||||||
|
String getTokenByUserId(Long userId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
||||||
|
import cn.stylefeng.roses.kernel.auth.api.expander.AuthConfigExpander;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.password.PasswordStoredEncryptApi;
|
import cn.stylefeng.roses.kernel.auth.api.password.PasswordStoredEncryptApi;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
|
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
|
||||||
|
@ -42,6 +43,9 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
|
import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
|
||||||
import cn.stylefeng.roses.kernel.file.api.constants.FileConstants;
|
import cn.stylefeng.roses.kernel.file.api.constants.FileConstants;
|
||||||
|
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext;
|
||||||
|
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||||
|
import cn.stylefeng.roses.kernel.message.api.expander.WebSocketConfigExpander;
|
||||||
import cn.stylefeng.roses.kernel.office.api.OfficeExcelApi;
|
import cn.stylefeng.roses.kernel.office.api.OfficeExcelApi;
|
||||||
import cn.stylefeng.roses.kernel.office.api.pojo.report.ExcelExportParam;
|
import cn.stylefeng.roses.kernel.office.api.pojo.report.ExcelExportParam;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
||||||
|
@ -588,6 +592,56 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
return list.stream().map(SysUser::getUserId).collect(Collectors.toList());
|
return list.stream().map(SysUser::getUserId).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysUserRequest> getAllUserIdList() {
|
||||||
|
if (!SystemConfigExpander.getDevSwitchStatus()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
LambdaQueryWrapper<SysUser> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userLambdaQueryWrapper.select(SysUser::getUserId, SysUser::getRealName);
|
||||||
|
userLambdaQueryWrapper.eq(SysUser::getStatusFlag, StatusEnum.ENABLE.getCode());
|
||||||
|
userLambdaQueryWrapper.ne(SysUser::getDelFlag, YesOrNotEnum.Y.getCode());
|
||||||
|
List<SysUser> list = this.list(userLambdaQueryWrapper);
|
||||||
|
return list.stream().map(item -> BeanUtil.toBean(item, SysUserRequest.class)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTokenByUserId(Long userId) {
|
||||||
|
if (!SystemConfigExpander.getDevSwitchStatus() || !LoginContext.me().getSuperAdminFlag()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
LambdaQueryWrapper<SysUser> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userLambdaQueryWrapper.eq(SysUser::getUserId, userId);
|
||||||
|
SysUser sysUser = this.getOne(userLambdaQueryWrapper);
|
||||||
|
|
||||||
|
// 获取用户密码的加密值和用户的状态
|
||||||
|
UserLoginInfoDTO userValidateInfo = this.getUserLoginInfo(sysUser.getAccount());
|
||||||
|
|
||||||
|
// 获取LoginUser,用于用户的缓存
|
||||||
|
LoginUser loginUser = userValidateInfo.getLoginUser();
|
||||||
|
|
||||||
|
// 生成用户的token
|
||||||
|
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), false, null);
|
||||||
|
String jwtToken = JwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||||
|
loginUser.setToken(jwtToken);
|
||||||
|
|
||||||
|
synchronized (this) {
|
||||||
|
|
||||||
|
// 获取ws-url 保存到用户信息中
|
||||||
|
loginUser.setWsUrl(WebSocketConfigExpander.getWebSocketWsUrl());
|
||||||
|
|
||||||
|
// 缓存用户信息,创建会话
|
||||||
|
sessionManagerApi.createSession(jwtToken, loginUser, false);
|
||||||
|
|
||||||
|
// 如果开启了单账号单端在线,则踢掉已经上线的该用户
|
||||||
|
if (AuthConfigExpander.getSingleAccountLoginFlag()) {
|
||||||
|
sessionManagerApi.removeSessionExcludeToken(jwtToken);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return jwtToken;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserLoginInfoDTO getUserLoginInfo(String account) {
|
public UserLoginInfoDTO getUserLoginInfo(String account) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue