授权拦截功能完成 .

yun-zuoyi
wei.peng 5 years ago
parent 80b7193551
commit 95eadae8c7

@ -0,0 +1,28 @@
package cn.estsh.i3plus.core.api.iservice.busi;
/**
* @Description :
*
* @Reference :
* @Author : wei.peng
* @CreateDate : 20-3-23 5:12
* @Modify:
**/
public interface ILicenseClickService {
/**
*
*/
void checkLicenseNumberUser();
/**
*
*/
void checkLicenseNumberOrganize();
/**
*
*/
void checkLicenseNumberLogin();
}

@ -65,7 +65,7 @@ public class ShiroAuthConfiguration {
private CacheManager getEhCacheManage;
//平台控制会话
@Resource(name = "imppSessionManager")
@Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER)
private DefaultWebSessionManager getSessionManage;
@Bean

@ -1,21 +1,27 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.platform.common.tool.HttpClientTool;
import cn.estsh.i3plus.platform.common.tool.SerializeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchPack;
import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool;
import cn.estsh.i3plus.platform.plugin.license.ImppLicense;
import cn.estsh.i3plus.platform.plugin.license.ImppLicenseTool;
import cn.estsh.i3plus.platform.plugin.license.serviceimpl.SenseLockUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogOperate;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;
@ -48,4 +54,39 @@ public class DemoController extends CoreBaseController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/license")
@ApiOperation(value = "添加操作日志", notes = "添加操作日志,可用于国际化")
public ResultBean license() {
try{
ImppLicense license = ImppLicenseTool.getLicense();
// SenseLockUtil lockUtil = SenseLockUtil.getSenseLockUtil(10086);
//// lockUtil.checkAPIKey();
// String readValue = lockUtil.getReadValue();
// System.out.println(readValue);
// ImppLicense readLicense = (ImppLicense) SerializeTool.deserializationByte(Base64.getDecoder().decode(readValue));
// System.out.println(JSON.toJSONString(readLicense));
//
// String writeValue = lockUtil.getWriteValue();
// System.out.println(writeValue);
// ImppLicense writeLicense = (ImppLicense) SerializeTool.deserializationByte(Base64.getDecoder().decode(writeValue));
// System.out.println(JSON.toJSONString(writeLicense));
//
// String publicValue = lockUtil.getPublicValue();
// System.out.println(publicValue);
// ImppLicense publicLicense = (ImppLicense) SerializeTool.deserializationByte(Base64.getDecoder().decode(publicValue));
// System.out.println(JSON.toJSONString(publicLicense));
// System.out.println("Hello World ~!");
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(license);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep).build();
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -6,6 +6,8 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.platform.common.tool.SerializeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.platform.plugin.license.ImppLicense;
import cn.estsh.i3plus.platform.plugin.license.ImppLicenseTool;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
@ -14,6 +16,7 @@ import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -105,4 +108,27 @@ public class BackstageController extends CoreBaseController {
}
}
@GetMapping(value = "/license")
@ApiOperation(value = "重新加载授权数据",notes = "重新加载授权数据")
public ResultBean updateLicense(ImppLicense license){
try {
ValidatorBean.beginValid(license)
.checkNotZero("licenseMaxOrganize",license.getLicenseMaxOrganize())
.checkNotZero("licenseMaxWarehouse",license.getLicenseMaxWarehouse())
.checkNotZero("licenseMaxProductionLine",license.getLicenseMaxProductionLine())
.checkNotZero("licenseMaxUser",license.getLicenseMaxUser())
.checkNotZero("licenseMaxUserSession",license.getLicenseMaxUserSession())
.notNull("licenseUpdateUserName",license.getLicenseUpdateUserName())
.notNull("licenseUpdateDateTime",license.getLicenseUpdateDateTime())
.notNull("licenseDescription",license.getLicenseDescription());
ImppLicenseTool.updateImppLicense(license);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -91,6 +91,9 @@ public class WhiteController extends CoreBaseController {
@Resource(name="redisRes")
private ImppRedis redisRes;
@Autowired
private ILicenseClickService licenseClickService;
@GetMapping(value = "/sys-locale-language/list")
@ApiOperation(value = "查询可用语言",notes = "查询可用语言")
public ResultBean listSysLocaleLanguage(){
@ -140,6 +143,7 @@ public class WhiteController extends CoreBaseController {
@RequestParam(required = false) String deviceId){
Long startTime = System.currentTimeMillis();
startMultiService();
licenseClickService.checkLicenseNumberLogin();
LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode);
ResultBean result = null;

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ILicenseClickService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
@ -58,6 +59,9 @@ public class PersonnelController extends CoreBaseController {
@Autowired
private ISysRoleService sysRoleService;
@Autowired
private ILicenseClickService licenseClickService;
/**
*
* @param model
@ -68,6 +72,7 @@ public class PersonnelController extends CoreBaseController {
public ResultBean insertUserDetailModel(UserDetailModel model) {
try {
startMultiService();
licenseClickService.checkLicenseNumberUser();
SysUser user = model.getSysUser();
SysUserInfo info = model.getSysUserInfo();

@ -44,7 +44,7 @@ public class SysDashboardController extends CoreBaseController {
@Autowired
private ISysDashboardService sysDashboardService;
@Resource(name = "imppSessionManager")
@Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER)
private DefaultWebSessionManager webSessionManager;
@Resource(name = CommonConstWords.IMPP_REDIS_CORE)

@ -19,13 +19,14 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
@ -33,6 +34,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* @Description :
@ -249,7 +251,9 @@ public class SysLogSystemController extends CoreBaseController{
if (zipFile != null) {
FileTool.deleteFile(zipFile.getPath());
}
if(Objects.nonNull(excelDir)){
FileTool.deleteFile(excelDir.getPath());
}
}
}
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.ILicenseClickService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService;
import cn.estsh.i3plus.icloud.wms.sdk.IWmsActionGroupCloud;
@ -14,6 +15,7 @@ import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
@ -64,6 +66,9 @@ public class SysOrganizeController extends CoreBaseController{
@Autowired
private IWmsActionGroupCloud wmsActionGroupCloud;
@Autowired
private ILicenseClickService licenseClickService;
/**
*
* @param organize
@ -86,6 +91,10 @@ public class SysOrganizeController extends CoreBaseController{
organize.setParentNameRdd("顶级组织");
}
if(organize.getOrganizeType().equals(ImppEnumUtil.ORGANIZE_YTPE.TYPE_FACTORY.getValue())){
licenseClickService.checkLicenseNumberOrganize();
}
organize = organizeService.insertSysOrganize(organize);
String resutl = "组织已创建完成";
@ -125,6 +134,10 @@ public class SysOrganizeController extends CoreBaseController{
sysOrganize.setParentNameRdd("顶级组织");
}
if(organize.getOrganizeType().equals(ImppEnumUtil.ORGANIZE_YTPE.TYPE_FACTORY.getValue())){
licenseClickService.checkLicenseNumberOrganize();
}
sysOrganize.setName(organize.getName());
sysOrganize.setOrganizeType(organize.getOrganizeType());
sysOrganize.setOrganizeAddress(organize.getOrganizeAddress());

@ -51,6 +51,9 @@ public class SysUserInfoController extends CoreBaseController{
public static final Logger LOGGER = LoggerFactory.getLogger(SysUserInfoController.class);
@Autowired
private ILicenseClickService licenseClickService;
@Autowired
private ISysUserInfoService sysUserInfoService;
@Autowired
@ -89,6 +92,7 @@ public class SysUserInfoController extends CoreBaseController{
public ResultBean insertSysUserInfo(SysUserInfo userInfo){
try {
startMultiService();
licenseClickService.checkLicenseNumberUser();
//登陆用户
SessionUser user = AuthUtil.getSessionUser();
@ -100,11 +104,8 @@ public class SysUserInfoController extends CoreBaseController{
userInfo.setUserLoginNum(0);
sysUserInfoService.checkSysUserInfoOnly(userInfo);
SysUserInfo info = sysUserInfoService.insertSysUserInfo(userInfo);
sysUserInfoService.refreshRefUserOrganize(info.getId(), userInfo.getDepartment().getOrganizeId(),user.getUserName());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(info);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);

@ -53,7 +53,7 @@ public class SysDashboardDataJob extends BaseImppScheduleJob {
@Resource(name = CommonConstWords.IMPP_REDIS_CORE)
private ImppRedis redisCore;
@Resource(name = "imppSessionManager")
@Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER)
private DefaultWebSessionManager webSessionManager;
@Override

@ -0,0 +1,60 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ILicenseClickService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.plugin.license.ImppLicenseTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.repository.SysOrganizeRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysUserInfoRepository;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @CreateDate : 20-3-23 5:16
* @Modify:
**/
@Service
public class LicenseClickService implements ILicenseClickService {
private static final Logger LOGGER = LoggerFactory.getLogger(LicenseClickService.class);
@Autowired
private SysUserInfoRepository userInfoRDao;
@Autowired
private SysOrganizeRepository organizeRDao;
@Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER)
private DefaultWebSessionManager webSessionManager;
@Override
public void checkLicenseNumberUser() {
int count = userInfoRDao.findByHqlWhereCount(DdlPackBean.getDdlPackBean());
ImppLicenseTool.checkUser(count);
}
@Override
public void checkLicenseNumberOrganize() {
DdlPackBean bean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getNumEqualPack(ImppEnumUtil.ORGANIZE_YTPE.TYPE_FACTORY.getValue(),"organizeType",bean);
ImppLicenseTool.checkOrganize(organizeRDao.findByHqlWhereCount(bean));
}
@Override
public void checkLicenseNumberLogin() {
int count = webSessionManager.getSessionDAO().getActiveSessions().size();
ImppLicenseTool.checkUserSession(count);
}
}
Loading…
Cancel
Save