Merge pull request #22 from hiparker/development

2.0.1
pull/33/head
Parker 3 years ago committed by GitHub
commit 14a1a89543
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

File diff suppressed because it is too large Load Diff

@ -294,7 +294,6 @@ public interface UserApi {
* @param username * @param username
* @return ResultWrapper * @return ResultWrapper
*/ */
//@GetMapping("/getUserByUsername")
ResultWrapper<UserModel> getUserByUsername(String username); ResultWrapper<UserModel> getUserByUsername(String username);
/** /**
@ -311,6 +310,11 @@ public interface UserApi {
*/ */
ResultWrapper<UserModel> getUserByEmail(String email); ResultWrapper<UserModel> getUserByEmail(String email);
/**
*
* @param id ID
* @return ResultWrapper
*/
ResultWrapper<UserModel> getById(String id);
} }

@ -15,9 +15,9 @@
*/ */
package org.opsli.common.utils; package org.opsli.common.utils;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.cglib.CglibUtil;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -75,12 +75,12 @@ public final class WrapperUtil {
} }
if(isClone){ if(isClone){
source = ObjectUtil.cloneByStream(source); source = ObjectUtil.cloneIfPossible(source);
} }
M m = null; M m = null;
try { try {
m = BeanUtil.copyProperties(source, target); m = CglibUtil.copy(source, target);
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
} }
@ -101,13 +101,11 @@ public final class WrapperUtil {
return Lists.newArrayList(); return Lists.newArrayList();
} }
if(isClone){
source = ObjectUtil.cloneByStream(source);
}
List<M> toInstanceList = Lists.newArrayList(); List<M> toInstanceList = Lists.newArrayList();
try { try {
toInstanceList = source.stream().map((s) -> transformInstance(s, target, true)).collect(Collectors.toList()); toInstanceList = source.stream()
.map((s) -> transformInstance(s, target, isClone))
.collect(Collectors.toList());
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
} }

@ -144,7 +144,9 @@ public final class SecurityCache {
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
}finally { }finally {
try {
lock.unlock(); lock.unlock();
}catch (Exception ignored){}
} }
return cache; return cache;
} }
@ -206,7 +208,9 @@ public final class SecurityCache {
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
}finally { }finally {
try {
lock.unlock(); lock.unlock();
}catch (Exception ignored){}
} }
return cache; return cache;
} }
@ -354,7 +358,9 @@ public final class SecurityCache {
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
}finally { }finally {
try {
lock.unlock(); lock.unlock();
}catch (Exception ignored){}
} }
return cache; return cache;
} }
@ -421,7 +427,9 @@ public final class SecurityCache {
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
}finally { }finally {
try {
lock.unlock(); lock.unlock();
}catch (Exception ignored){}
} }
return cache; return cache;
} }
@ -488,7 +496,9 @@ public final class SecurityCache {
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
}finally { }finally {
try {
lock.unlock(); lock.unlock();
}catch (Exception ignored){}
} }
return cache; return cache;
} }

@ -35,7 +35,7 @@ import java.io.IOException;
/** /**
* JWT * JWT
* filter Spring * filter Spring
* @author Parker * @author Parker
* @date 2022072216:16:42 * @date 2022072216:16:42
*/ */

@ -321,7 +321,7 @@ public class UserTokenUtil {
if(BooleanUtil.isTrue(LOGIN_PROPERTIES.getReviveMode())){ if(BooleanUtil.isTrue(LOGIN_PROPERTIES.getReviveMode())){
// 设置该用户全部token失效时间 如果这时又有新设备登录 则续命 // 设置该用户全部token失效时间 如果这时又有新设备登录 则续命
redisPlugin.expire(ticketSetKey, redisPlugin.expire(ticketSetKey,
TOKEN_PROPERTIES.getEffectiveTime(), TimeUnit.MILLISECONDS); TOKEN_PROPERTIES.getEffectiveTime(), TimeUnit.MINUTES);
} }
} }

@ -174,16 +174,7 @@ public class UserUtil {
Object cache = SecurityCache.get(redisTemplate, cacheKey, (k) -> { Object cache = SecurityCache.get(redisTemplate, cacheKey, (k) -> {
// 查询数据库 // 查询数据库
UserModel userModelTemp = new UserModel(); ResultWrapper<UserModel> resultVo = userApi.getById(userId);
userModelTemp.setId(userId);
// 设置为系统内部调用 否则 会拿到 空值
userModelTemp.setIzApi(true);
// 查询数据库
ResultWrapper<UserModel> resultVo = userApi.get(userModelTemp);
if(!ResultWrapper.isSuccess(resultVo)){
return null;
}
return resultVo.getData(); return resultVo.getData();
}, true); }, true);

@ -404,11 +404,15 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
* @return ResultWrapper * @return ResultWrapper
*/ */
@ApiOperation(value = "获得单条用户信息", notes = "获得单条用户信息 - ID") @ApiOperation(value = "获得单条用户信息", notes = "获得单条用户信息 - ID")
// 因为工具类 使用到该方法 不做权限验证 @PreAuthorize("hasAuthority('system_user_select')")
//@PreAuthorize("hasAuthority('system_user_select')")
@Override @Override
public ResultWrapper<UserModel> get(UserModel model) { public ResultWrapper<UserModel> get(UserModel model) {
model = IService.get(model); model = IService.get(model);
// 防止密码泄露
model.setPassword(null);
model.setPasswordLevel(null);
return ResultWrapper.getSuccessResultWrapper(model); return ResultWrapper.getSuccessResultWrapper(model);
} }
@ -635,51 +639,6 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
return super.importExcel(request); return super.importExcel(request);
} }
/**
* username
* @param username
* @return ResultWrapper
*/
@ApiOperation(value = "根据 username 获得用户", notes = "根据 username 获得用户")
@Override
public ResultWrapper<UserModel> getUserByUsername(String username) {
UserModel userModel = IService.queryByUserName(username);
if(userModel == null){
// 暂无该用户
throw new ServiceException(SystemMsg.EXCEPTION_USER_NULL.getCode(),
StrUtil.format(SystemMsg.EXCEPTION_USER_NULL.getMessage(), username)
);
}
return ResultWrapper.getSuccessResultWrapper(userModel);
}
@ApiOperation(value = "根据 手机号 获得用户", notes = "根据 手机号 获得用户")
@Override
public ResultWrapper<UserModel> getUserByMobile(String mobile) {
UserModel userModel = IService.queryByMobile(mobile);
if(userModel == null){
// 暂无该用户
throw new ServiceException(SystemMsg.EXCEPTION_USER_NULL.getCode(),
StrUtil.format(SystemMsg.EXCEPTION_USER_NULL.getMessage(), mobile)
);
}
return ResultWrapper.getSuccessResultWrapper(userModel);
}
@ApiOperation(value = "根据 邮箱 获得用户", notes = "根据 邮箱 获得用户")
@Override
public ResultWrapper<UserModel> getUserByEmail(String email) {
UserModel userModel = IService.queryByEmail(email);
if(userModel == null){
// 暂无该用户
throw new ServiceException(SystemMsg.EXCEPTION_USER_NULL.getCode(),
StrUtil.format(SystemMsg.EXCEPTION_USER_NULL.getMessage(), email)
);
}
return ResultWrapper.getSuccessResultWrapper(userModel);
}
/** /**
* *
* @param tenantId ID * @param tenantId ID
@ -765,4 +724,61 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
: ResultWrapper.getErrorResultWrapper().setMsg("切换失败"); : ResultWrapper.getErrorResultWrapper().setMsg("切换失败");
} }
/**
* username
* @param username
* @return ResultWrapper
*/
@ApiOperation(value = "根据 username 获得用户", notes = "根据 username 获得用户")
@Override
public ResultWrapper<UserModel> getUserByUsername(String username) {
UserModel userModel = IService.queryByUserName(username);
if(userModel == null){
// 暂无该用户
throw new ServiceException(SystemMsg.EXCEPTION_USER_NULL.getCode(),
StrUtil.format(SystemMsg.EXCEPTION_USER_NULL.getMessage(), username)
);
}
return ResultWrapper.getSuccessResultWrapper(userModel);
}
@ApiOperation(value = "根据 手机号 获得用户", notes = "根据 手机号 获得用户")
@Override
public ResultWrapper<UserModel> getUserByMobile(String mobile) {
UserModel userModel = IService.queryByMobile(mobile);
if(userModel == null){
// 暂无该用户
throw new ServiceException(SystemMsg.EXCEPTION_USER_NULL.getCode(),
StrUtil.format(SystemMsg.EXCEPTION_USER_NULL.getMessage(), mobile)
);
}
return ResultWrapper.getSuccessResultWrapper(userModel);
}
@ApiOperation(value = "根据 邮箱 获得用户", notes = "根据 邮箱 获得用户")
@Override
public ResultWrapper<UserModel> getUserByEmail(String email) {
UserModel userModel = IService.queryByEmail(email);
if(userModel == null){
// 暂无该用户
throw new ServiceException(SystemMsg.EXCEPTION_USER_NULL.getCode(),
StrUtil.format(SystemMsg.EXCEPTION_USER_NULL.getMessage(), email)
);
}
return ResultWrapper.getSuccessResultWrapper(userModel);
}
/**
*
* @param id
* @return ResultWrapper
*/
@ApiOperation(value = "根据 ID 获得用户", notes = "根据 ID 获得用户")
@Override
public ResultWrapper<UserModel> getById(String id) {
UserModel userModel = IService.get(id);
return ResultWrapper.getSuccessResultWrapper(userModel);
}
} }

@ -93,6 +93,7 @@
<protobuf-java.version>3.18.2</protobuf-java.version> <protobuf-java.version>3.18.2</protobuf-java.version>
<beanutils.version>1.9.4</beanutils.version> <beanutils.version>1.9.4</beanutils.version>
<transmittable.version>2.12.5</transmittable.version> <transmittable.version>2.12.5</transmittable.version>
<cglib.version>3.3.0</cglib.version>
<!-- 需要使用着两个版本 来引入对应的模块和插件 --> <!-- 需要使用着两个版本 来引入对应的模块和插件 -->
<!-- API版本 --> <!-- API版本 -->
@ -146,6 +147,13 @@
<version>${captcha.version}</version> <version>${captcha.version}</version>
</dependency> </dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
<scope>compile</scope>
</dependency>
<!-- JWT --> <!-- JWT -->
<dependency> <dependency>
<groupId>com.auth0</groupId> <groupId>com.auth0</groupId>
@ -350,6 +358,13 @@
<version>${hutool.version}</version> <version>${hutool.version}</version>
</dependency> </dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
<scope>compile</scope>
</dependency>
<!-- 修复 Cxa9261daf-3755 --> <!-- 修复 Cxa9261daf-3755 -->
<!-- 国密算法包 --> <!-- 国密算法包 -->
<dependency> <dependency>

Loading…
Cancel
Save