mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
修改mybatis自动插入的creator updater 字段为用户昵称
This commit is contained in:
+5
-4
@@ -33,13 +33,14 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Long userId = WebFrameworkUtils.getLoginUserId();
|
Long userId = WebFrameworkUtils.getLoginUserId();
|
||||||
|
String loginUserName = WebFrameworkUtils.getLoginUserName();
|
||||||
// 当前登录用户不为空,创建人为空,则当前登录用户为创建人
|
// 当前登录用户不为空,创建人为空,则当前登录用户为创建人
|
||||||
if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreator())) {
|
if (Objects.nonNull(loginUserName) && Objects.isNull(baseDO.getCreator())) {
|
||||||
baseDO.setCreator(userId.toString());
|
baseDO.setCreator(loginUserName);
|
||||||
}
|
}
|
||||||
// 当前登录用户不为空,更新人为空,则当前登录用户为更新人
|
// 当前登录用户不为空,更新人为空,则当前登录用户为更新人
|
||||||
if (Objects.nonNull(userId) && Objects.isNull(baseDO.getUpdater())) {
|
if (Objects.nonNull(loginUserName) && Objects.isNull(baseDO.getUpdater())) {
|
||||||
baseDO.setUpdater(userId.toString());
|
baseDO.setUpdater(loginUserName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -75,4 +75,8 @@ public class LoginUser {
|
|||||||
* 数据源编码
|
* 数据源编码
|
||||||
*/
|
*/
|
||||||
private String dataCode;
|
private String dataCode;
|
||||||
|
/**
|
||||||
|
* 用户昵称
|
||||||
|
*/
|
||||||
|
private String nickname;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -106,6 +106,7 @@ public class SecurityFrameworkUtils {
|
|||||||
// 原因是,Spring Security 的 Filter 在 ApiAccessLogFilter 后面,在它记录访问日志时,线上上下文已经没有用户编号等信息
|
// 原因是,Spring Security 的 Filter 在 ApiAccessLogFilter 后面,在它记录访问日志时,线上上下文已经没有用户编号等信息
|
||||||
WebFrameworkUtils.setLoginUserId(request, loginUser.getId());
|
WebFrameworkUtils.setLoginUserId(request, loginUser.getId());
|
||||||
WebFrameworkUtils.setLoginUserType(request, loginUser.getUserType());
|
WebFrameworkUtils.setLoginUserType(request, loginUser.getUserType());
|
||||||
|
WebFrameworkUtils.setLoginUserName(request, loginUser.getNickname());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Authentication buildAuthentication(LoginUser loginUser, HttpServletRequest request) {
|
private static Authentication buildAuthentication(LoginUser loginUser, HttpServletRequest request) {
|
||||||
|
|||||||
+26
@@ -25,6 +25,8 @@ public class WebFrameworkUtils {
|
|||||||
|
|
||||||
private static final String REQUEST_ATTRIBUTE_COMMON_RESULT = "common_result";
|
private static final String REQUEST_ATTRIBUTE_COMMON_RESULT = "common_result";
|
||||||
|
|
||||||
|
private static final String REQUEST_ATTRIBUTE_LOGIN_USER_NAME = "login-user-name";
|
||||||
|
|
||||||
public static final String HEADER_ORGAN_ID = "organ-id";
|
public static final String HEADER_ORGAN_ID = "organ-id";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,6 +58,10 @@ public class WebFrameworkUtils {
|
|||||||
request.setAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID, userId);
|
request.setAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setLoginUserName(ServletRequest request, String nickname) {
|
||||||
|
request.setAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_NAME, nickname);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置用户类型
|
* 设置用户类型
|
||||||
*
|
*
|
||||||
@@ -80,6 +86,20 @@ public class WebFrameworkUtils {
|
|||||||
return (Long) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID);
|
return (Long) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得当前用户的昵称,从请求中
|
||||||
|
* 注意:该方法仅限于 framework 框架使用!!!
|
||||||
|
*
|
||||||
|
* @param request 请求
|
||||||
|
* @return 用户编号
|
||||||
|
*/
|
||||||
|
private static String getLoginUserName(HttpServletRequest request) {
|
||||||
|
if (request == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return (String) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得当前用户的类型
|
* 获得当前用户的类型
|
||||||
* 注意:该方法仅限于 web 相关的 framework 组件使用!!!
|
* 注意:该方法仅限于 web 相关的 framework 组件使用!!!
|
||||||
@@ -116,6 +136,12 @@ public class WebFrameworkUtils {
|
|||||||
return getLoginUserId(request);
|
return getLoginUserId(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getLoginUserName() {
|
||||||
|
HttpServletRequest request = getRequest();
|
||||||
|
return getLoginUserName(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Integer getTerminal() {
|
public static Integer getTerminal() {
|
||||||
HttpServletRequest request = getRequest();
|
HttpServletRequest request = getRequest();
|
||||||
if (request == null) {
|
if (request == null) {
|
||||||
|
|||||||
@@ -46,5 +46,9 @@ public class LoginUser {
|
|||||||
* 数据源编码
|
* 数据源编码
|
||||||
*/
|
*/
|
||||||
private String dataCode;
|
private String dataCode;
|
||||||
|
/**
|
||||||
|
* 用户nic
|
||||||
|
*/
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -171,7 +171,7 @@ public class TokenAuthenticationFilter implements GlobalFilter, Ordered {
|
|||||||
return new LoginUser().setId(tokenInfo.getUserId()).setUserType(tokenInfo.getUserType())
|
return new LoginUser().setId(tokenInfo.getUserId()).setUserType(tokenInfo.getUserType())
|
||||||
.setOrganId(tokenInfo.getOrganId()).setScopes(tokenInfo.getScopes())
|
.setOrganId(tokenInfo.getOrganId()).setScopes(tokenInfo.getScopes())
|
||||||
.setLarge(tokenInfo.getLarge()).setDbNo(tokenInfo.getDbNo()).setTableNo(tokenInfo.getTableNo())
|
.setLarge(tokenInfo.getLarge()).setDbNo(tokenInfo.getDbNo()).setTableNo(tokenInfo.getTableNo())
|
||||||
.setDataCode(tokenInfo.getDataCode());
|
.setDataCode(tokenInfo.getDataCode()).setNickname(tokenInfo.getNickname());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
@@ -30,5 +30,7 @@ public class OAuth2AccessTokenCheckRespDTO implements Serializable {
|
|||||||
private Integer tableNo;
|
private Integer tableNo;
|
||||||
@Schema(description = "数据源编码")
|
@Schema(description = "数据源编码")
|
||||||
private String dataCode;
|
private String dataCode;
|
||||||
|
@Schema(description = "用户昵称")
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -32,5 +32,6 @@ public class OAuth2AccessTokenCreateReqDTO implements Serializable {
|
|||||||
private Long organId;
|
private Long organId;
|
||||||
@Schema(description = "数据源标识")
|
@Schema(description = "数据源标识")
|
||||||
private String dataCode;
|
private String dataCode;
|
||||||
|
@Schema(description = "用户昵称")
|
||||||
|
private String nickname;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -40,7 +40,7 @@ public class OAuth2TokenApiImpl implements OAuth2TokenApi {
|
|||||||
throw new ServerException(10023,"组织不存在");
|
throw new ServerException(10023,"组织不存在");
|
||||||
}*/
|
}*/
|
||||||
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(
|
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(
|
||||||
reqDTO.getUserId(), reqDTO.getUserType(), reqDTO.getClientId(), reqDTO.getScopes(), null, null, null, reqDTO.getDataCode(), reqDTO.getOrganId());
|
reqDTO.getUserId(), reqDTO.getUserType(), reqDTO.getClientId(), reqDTO.getScopes(), null, null, null, reqDTO.getDataCode(), reqDTO.getOrganId(), reqDTO.getNickname());
|
||||||
return success(BeanUtils.toBean(accessTokenDO, OAuth2AccessTokenRespDTO.class));
|
return success(BeanUtils.toBean(accessTokenDO, OAuth2AccessTokenRespDTO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-2
@@ -82,7 +82,12 @@ public class OAuth2AccessTokenDO extends BaseDO {
|
|||||||
* 数据源编码
|
* 数据源编码
|
||||||
*/
|
*/
|
||||||
private String dataCode;
|
private String dataCode;
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
private Long organId;
|
private Long organId;
|
||||||
|
/**
|
||||||
|
* 用户昵称
|
||||||
|
*/
|
||||||
|
private String nickname;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -79,5 +79,9 @@ public class OAuth2RefreshTokenDO extends BaseDO {
|
|||||||
* 组织id
|
* 组织id
|
||||||
*/
|
*/
|
||||||
private Long organId;
|
private Long organId;
|
||||||
|
/**
|
||||||
|
* 用户昵称
|
||||||
|
*/
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -134,7 +134,9 @@ public class ApplicationServiceImpl implements ApplicationService{
|
|||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null);
|
null,
|
||||||
|
null
|
||||||
|
);
|
||||||
// 构建返回结果
|
// 构建返回结果
|
||||||
return AuthConvert.INSTANCE.convert(accessTokenDO);
|
return AuthConvert.INSTANCE.convert(accessTokenDO);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -130,7 +130,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|||||||
throw exception(ORGAN_DATA_CODE_NOT_EXISTS);
|
throw exception(ORGAN_DATA_CODE_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
// 创建 Token 令牌,记录登录日志
|
// 创建 Token 令牌,记录登录日志
|
||||||
return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME, dataSourceCode, user.getOrganId());
|
return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME, dataSourceCode, user.getOrganId(), user.getNickname());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -161,7 +161,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 创建 Token 令牌,记录登录日志
|
// 创建 Token 令牌,记录登录日志
|
||||||
return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE, dataSourceCode, organId);
|
return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE, dataSourceCode, organId, user.getNickname());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createLoginLog(Long userId, String username,
|
private void createLoginLog(Long userId, String username,
|
||||||
@@ -206,7 +206,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 创建 Token 令牌,记录登录日志
|
// 创建 Token 令牌,记录登录日志
|
||||||
return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL, dataSourceCode, organId);
|
return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL, dataSourceCode, organId, user.getNickname());
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -228,7 +228,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType, String dataCode, Long organId) {
|
private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType, String dataCode, Long organId, String nickname) {
|
||||||
// 插入登陆日志
|
// 插入登陆日志
|
||||||
createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS);
|
createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS);
|
||||||
/*Long organId = OrganContextHolder.getOrganId();
|
/*Long organId = OrganContextHolder.getOrganId();
|
||||||
@@ -238,7 +238,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|||||||
}*/
|
}*/
|
||||||
// 创建访问令牌
|
// 创建访问令牌
|
||||||
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(),
|
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(),
|
||||||
OAuth2ClientConstants.CLIENT_ID_DEFAULT, null, null, null, null, dataCode, organId);
|
OAuth2ClientConstants.CLIENT_ID_DEFAULT, null, null, null, null, dataCode, organId, nickname);
|
||||||
// 构建返回结果
|
// 构建返回结果
|
||||||
return AuthConvert.INSTANCE.convert(accessTokenDO);
|
return AuthConvert.INSTANCE.convert(accessTokenDO);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -47,7 +47,7 @@ public class OAuth2GrantServiceImpl implements OAuth2GrantService {
|
|||||||
if(Objects.isNull(organ)) {
|
if(Objects.isNull(organ)) {
|
||||||
throw new ServerException(10023,"组织不存在");
|
throw new ServerException(10023,"组织不存在");
|
||||||
}*/
|
}*/
|
||||||
return oauth2TokenService.createAccessToken(userId, userType, clientId, scopes, null, null, null, null, null);
|
return oauth2TokenService.createAccessToken(userId, userType, clientId, scopes, null, null, null, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -85,7 +85,7 @@ public class OAuth2GrantServiceImpl implements OAuth2GrantService {
|
|||||||
|
|
||||||
// 创建访问令牌
|
// 创建访问令牌
|
||||||
return oauth2TokenService.createAccessToken(codeDO.getUserId(), codeDO.getUserType(),
|
return oauth2TokenService.createAccessToken(codeDO.getUserId(), codeDO.getUserType(),
|
||||||
codeDO.getClientId(), codeDO.getScopes(),null, null, null, null, null);
|
codeDO.getClientId(), codeDO.getScopes(),null, null, null, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -99,7 +99,7 @@ public class OAuth2GrantServiceImpl implements OAuth2GrantService {
|
|||||||
throw new ServerException(10023,"组织不存在");
|
throw new ServerException(10023,"组织不存在");
|
||||||
}*/
|
}*/
|
||||||
// 创建访问令牌
|
// 创建访问令牌
|
||||||
return oauth2TokenService.createAccessToken(user.getId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes,null, null, null, null,null);
|
return oauth2TokenService.createAccessToken(user.getId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes,null, null, null, null,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ public interface OAuth2TokenService {
|
|||||||
* @param scopes 授权范围
|
* @param scopes 授权范围
|
||||||
* @return 访问令牌的信息
|
* @return 访问令牌的信息
|
||||||
*/
|
*/
|
||||||
OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List<String> scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId);
|
OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List<String> scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 刷新访问令牌
|
* 刷新访问令牌
|
||||||
|
|||||||
+5
-4
@@ -45,10 +45,10 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List<String> scopes,Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId) {
|
public OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List<String> scopes,Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) {
|
||||||
OAuth2ClientDO clientDO = oauth2ClientService.validOAuthClientFromCache(clientId);
|
OAuth2ClientDO clientDO = oauth2ClientService.validOAuthClientFromCache(clientId);
|
||||||
// 创建刷新令牌
|
// 创建刷新令牌
|
||||||
OAuth2RefreshTokenDO refreshTokenDO = createOAuth2RefreshToken(userId, userType, clientDO, scopes, large, dbNo, tableNo, dataCode, organId);
|
OAuth2RefreshTokenDO refreshTokenDO = createOAuth2RefreshToken(userId, userType, clientDO, scopes, large, dbNo, tableNo, dataCode, organId, nickname);
|
||||||
// 创建访问令牌
|
// 创建访问令牌
|
||||||
return createOAuth2AccessToken(refreshTokenDO, clientDO);
|
return createOAuth2AccessToken(refreshTokenDO, clientDO);
|
||||||
}
|
}
|
||||||
@@ -140,6 +140,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
|||||||
.setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds()))
|
.setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds()))
|
||||||
.setLarge(refreshTokenDO.getLarge()).setDbNo(refreshTokenDO.getDbNo()).setTableNo(refreshTokenDO.getTableNo())
|
.setLarge(refreshTokenDO.getLarge()).setDbNo(refreshTokenDO.getDbNo()).setTableNo(refreshTokenDO.getTableNo())
|
||||||
.setDataCode(refreshTokenDO.getDataCode()).setOrganId(refreshTokenDO.getOrganId())
|
.setDataCode(refreshTokenDO.getDataCode()).setOrganId(refreshTokenDO.getOrganId())
|
||||||
|
.setNickname(refreshTokenDO.getNickname())
|
||||||
;
|
;
|
||||||
//accessTokenDO.setOrganId(OrganContextHolder.getOrganId()); // 手动设置组织编号,避免缓存到 Redis 的时候,无对应的组织编号
|
//accessTokenDO.setOrganId(OrganContextHolder.getOrganId()); // 手动设置组织编号,避免缓存到 Redis 的时候,无对应的组织编号
|
||||||
oauth2AccessTokenMapper.insert(accessTokenDO);
|
oauth2AccessTokenMapper.insert(accessTokenDO);
|
||||||
@@ -148,13 +149,13 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
|
|||||||
return accessTokenDO;
|
return accessTokenDO;
|
||||||
}
|
}
|
||||||
|
|
||||||
private OAuth2RefreshTokenDO createOAuth2RefreshToken(Long userId, Integer userType, OAuth2ClientDO clientDO, List<String> scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId) {
|
private OAuth2RefreshTokenDO createOAuth2RefreshToken(Long userId, Integer userType, OAuth2ClientDO clientDO, List<String> scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) {
|
||||||
OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken())
|
OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken())
|
||||||
.setUserId(userId).setUserType(userType)
|
.setUserId(userId).setUserType(userType)
|
||||||
.setClientId(clientDO.getClientId()).setScopes(scopes)
|
.setClientId(clientDO.getClientId()).setScopes(scopes)
|
||||||
.setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds()))
|
.setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds()))
|
||||||
.setLarge(large).setDbNo(dbNo).setTableNo(tableNo).setDataCode(dataCode)
|
.setLarge(large).setDbNo(dbNo).setTableNo(tableNo).setDataCode(dataCode)
|
||||||
.setOrganId(organId)
|
.setOrganId(organId).setNickname(nickname)
|
||||||
;
|
;
|
||||||
oauth2RefreshTokenMapper.insert(refreshToken);
|
oauth2RefreshTokenMapper.insert(refreshToken);
|
||||||
return refreshToken;
|
return refreshToken;
|
||||||
|
|||||||
Reference in New Issue
Block a user