REM:
1. 设备登录密码进行加解密处理
This commit is contained in:
chenlinghy 2021-08-24 11:13:29 +08:00
parent 1278d69e87
commit bc0bbf2524
7 changed files with 96 additions and 90 deletions

View File

@ -14,6 +14,7 @@ import com.dispose.common.NetflowDirection;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
import com.dispose.security.arithmetic.CryptoHelper;
import com.dptech.dispose.AbnormalFlowCleaningServicePortType;
import com.dptech.dispose.ArrayOfProtectionObjectDataForService;
import com.dptech.dispose.NtcRequestResultInfo;
@ -101,7 +102,7 @@ public class DpTechAbilityImpl implements DisposeAbility {
this.cleanTypePort = (AbnormalFlowCleaningServicePortType) jaxWsProxyFactoryBean.create();
Map<String, Object> ctx = ((BindingProvider) this.cleanTypePort).getRequestContext();
ctx.put("password", password);
ctx.put("password", new String(CryptoHelper.base64Decryption(password)));
ctx.put("username", username);
// 配置连接访问超时时间
@ -145,24 +146,24 @@ public class DpTechAbilityImpl implements DisposeAbility {
log.debug("DpTech startAbnormalTaskForUMC request: {}, {}, {}", disposeObject, attackType, nfDirection);
NtcRequestResultInfo ret = cleanTypePort.startAbnormalTaskForUMC(disposeObject, attackType,
nfDirection.getValue());
nfDirection.getValue());
log.debug("DpTech startAbnormalTaskForUMC response: {}", ret);
if (ret.getResultRetVal() != 0) {
err = ErrorCode.ERR_CALLDEVICE;
log.error("----Error DPTech Start Cleanup Task: {}, {}, {}, {}", disposeObject, nfDirection,
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
} else {
log.debug("----Finish DPTech Start Cleanup Task: {}, {}, {}, {}", disposeObject, nfDirection,
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
}
} catch (Exception ex) {
err = ErrorCode.ERR_SYSTEMEXCEPTION;
log.error("----Exception DPTech Start Cleanup Task: {}, {}, {}", disposeObject, nfDirection,
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType));
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType));
}
return new MulReturnType<>(err, null);
@ -197,23 +198,23 @@ public class DpTechAbilityImpl implements DisposeAbility {
log.debug("DpTech stopAbnormalTaskForUMC request: {}, {}, {}", disposeObject, attackType, nfDirection);
NtcRequestResultInfo ret = cleanTypePort.stopAbnormalTaskForUMC(disposeObject, attackType,
nfDirection.getValue());
nfDirection.getValue());
log.debug("DpTech stopAbnormalTaskForUMC response: {}", ret);
if (ret.getResultRetVal() != 0) {
err = ErrorCode.ERR_CALLDEVICE;
log.error("----Error DPTech Stop Cleanup Task: {}, {}, {}, {}", disposeObject, nfDirection,
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
} else {
log.info("----Finish DPTech Stop Cleanup Task: {}, {}, {}, {}", disposeObject, nfDirection,
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType),
ret.getResultInfo().getValue());
}
} catch (Exception ex) {
err = ErrorCode.ERR_SYSTEMEXCEPTION;
log.error("----Exception DPTech Stop Cleanup Task: {}, {}, {}", disposeObject, nfDirection,
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType));
CommonEnumHandler.codeOf(DpTechAttackType.class, attackType));
}
return new MulReturnType<>(err, null);
@ -253,18 +254,18 @@ public class DpTechAbilityImpl implements DisposeAbility {
@Override
public MulReturnType<ErrorCode, DeviceFirewareInfo> getAbilityDeviceFireware() {
return new MulReturnType<>(ErrorCode.ERR_OK,
DeviceFirewareInfo.builder()
.vendor("DpTech")
.model("UMC")
.firmware("Unknown")
.os("Windows Server")
.kernel("Windows")
.arch("x86_64")
.version("5.7.31")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
DeviceFirewareInfo.builder()
.vendor("DpTech")
.model("UMC")
.firmware("Unknown")
.os("Windows Server")
.kernel("Windows")
.arch("x86_64")
.version("5.7.31")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
}
/**
@ -275,7 +276,7 @@ public class DpTechAbilityImpl implements DisposeAbility {
*/
@Override
public Long toDeviceAttackType(Long ddosAttackTypeMask) {
return DpTechAttackType.getTypeMaskFromAttackType(new DpTechAttackType[] {DpTechAttackType.UDP_FLOOD});
return DpTechAttackType.getTypeMaskFromAttackType(new DpTechAttackType[]{DpTechAttackType.UDP_FLOOD});
}
/**

View File

@ -10,6 +10,7 @@ import com.dispose.common.NetflowDirection;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
import com.dispose.security.arithmetic.CryptoHelper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.huawei.dispose.common.HuaWeiLoginResp;
import com.huawei.dispose.protocol.HuaWeiInterface;
@ -85,7 +86,7 @@ public class HuaWeiAbilityImpl implements DisposeAbility {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
this.password = password;
this.password = new String(CryptoHelper.base64Decryption(password));
upgradeToken();
}
@ -146,7 +147,7 @@ public class HuaWeiAbilityImpl implements DisposeAbility {
if (resp != ErrorCode.ERR_OK) {
log.error("----Error HuaWei start clean {} return error: {}, {}", disposeObject, resp.getCode(),
resp.getMsg());
resp.getMsg());
return new MulReturnType<>(ErrorCode.ERR_HUAWEI_ERROR, null);
}
@ -154,9 +155,9 @@ public class HuaWeiAbilityImpl implements DisposeAbility {
return new MulReturnType<>(ErrorCode.ERR_OK, null);
} catch (Exception ex) {
log.error("----Exception HuaWei Start Cleanup Task [{}]: {}, {}, {}, {}, {}", ex.getMessage(),
disposeObject,
nfDirection,
duration, url, token);
disposeObject,
nfDirection,
duration, url, token);
return new MulReturnType<>(ErrorCode.ERR_SYSTEMEXCEPTION, null);
}
}
@ -228,8 +229,8 @@ public class HuaWeiAbilityImpl implements DisposeAbility {
return new MulReturnType<>(ErrorCode.ERR_OK, null);
} catch (Exception ex) {
log.error("----Exception HuaWei Stop Cleanup Task [{}]: {}, {}, {}, {}", ex.getMessage(),
disposeObject,
nfDirection, url, token);
disposeObject,
nfDirection, url, token);
return new MulReturnType<>(ErrorCode.ERR_SYSTEMEXCEPTION, null);
}
}
@ -253,18 +254,18 @@ public class HuaWeiAbilityImpl implements DisposeAbility {
@Override
public MulReturnType<ErrorCode, DeviceFirewareInfo> getAbilityDeviceFireware() {
return new MulReturnType<>(ErrorCode.ERR_OK,
DeviceFirewareInfo.builder()
.vendor("HuaWei")
.model("Unknown")
.firmware("Unknown")
.os("Linux Server")
.kernel("Linux")
.arch("x86_64")
.version("Unknown")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
DeviceFirewareInfo.builder()
.vendor("HuaWei")
.model("Unknown")
.firmware("Unknown")
.os("Linux Server")
.kernel("Linux")
.arch("x86_64")
.version("Unknown")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
}
/**

View File

@ -85,7 +85,7 @@ public class HuaWeiFireWallAbilityImpl implements DisposeAbility {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
this.password = password;
this.password = new String(CryptoHelper.base64Decryption(password));
upgradeToken();
}

View File

@ -12,6 +12,7 @@ import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
import com.dispose.security.arithmetic.CryptoHelper;
import com.pengxin.dispose.common.PengXinDisposeAbilityRsp;
import com.pengxin.dispose.common.PengXinLoginRsp;
import com.pengxin.dispose.common.PengXinStartTaskItem;
@ -127,7 +128,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
this.password = password;
this.password = new String(CryptoHelper.base64Decryption(password));
restfulInterface.setParams(1, 0);
upgradeToken();
@ -172,12 +173,12 @@ public class PengXinAbilityImpl implements DisposeAbility {
}
reqItems.add(PengXinStartTaskItem.builder()
.type(getPengXinTaskType(capType))
.disposeObject(disposeObject)
.objectType(getPengXinObjectType(objectType))
.disposeTime(duration)
.taskReqId(String.valueOf(taskReqId++))
.build());
.type(getPengXinTaskType(capType))
.disposeObject(disposeObject)
.objectType(getPengXinObjectType(objectType))
.disposeTime(duration)
.taskReqId(String.valueOf(taskReqId++))
.build());
ProtocolRespDTO<PengXinStartTaskRsp> rspInfo = restfulInterface.startDisposeTask(url, token, reqItems);
@ -245,7 +246,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
}
ProtocolRespDTO<PengXinStopTaskRsp> rspInfo = restfulInterface.stopDisposeTask(url, token,
new String[]{taskId});
new String[]{taskId});
// 判断是否token过期
if (rspInfo != null && reLogin(rspInfo, rspInfo.getMsgContent().getItems().get(0).getStatus())) {
@ -285,18 +286,18 @@ public class PengXinAbilityImpl implements DisposeAbility {
@Override
public MulReturnType<ErrorCode, DeviceFirewareInfo> getAbilityDeviceFireware() {
return new MulReturnType<>(ErrorCode.ERR_OK,
DeviceFirewareInfo.builder()
.vendor("PengXin")
.model("Unknown")
.firmware("Unknown")
.os("Linux Server")
.kernel("Linux")
.arch("x86_64")
.version("Unknown")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
DeviceFirewareInfo.builder()
.vendor("PengXin")
.model("Unknown")
.firmware("Unknown")
.os("Linux Server")
.kernel("Linux")
.arch("x86_64")
.version("Unknown")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
}
/**
@ -373,7 +374,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
}
if (rspInfo != null && rspInfo.getCode() == ErrorCode.ERR_OK.getHttpCode()
&& rspInfo.getMsgContent().getStatus() == ErrorCode.ERR_OK.getCode()) {
&& rspInfo.getMsgContent().getStatus() == ErrorCode.ERR_OK.getCode()) {
rspInfo.getMsgContent().getCapacity().forEach(v -> {
if (v.getObjectType().equals(DisposeObjectType.DOMAIN.getValue())) {
@ -459,7 +460,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
String url = urlRootPath + "dispose_device/task/get";
ProtocolRespDTO<PengXinTaskStatusRsp> rspInfo = restfulInterface.getDeviceTaskStatus(url, token,
new String[]{taskId});
new String[]{taskId});
// 判断是否token过期
if (rspInfo != null && reLogin(rspInfo, rspInfo.getMsgContent().getItems().get(0).getStatus())) {
@ -474,7 +475,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
}
return new MulReturnType<>(ErrorCode.ERR_OK,
rspInfo.getMsgContent().getItems().get(0).getTaskStatus());
rspInfo.getMsgContent().getItems().get(0).getTaskStatus());
} else {
return new MulReturnType<>(ErrorCode.ERR_CALLDEVICE, -1L);
}
@ -512,7 +513,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
if (rspInfo.getCode() == HttpServletResponse.SC_OK &&
(status == ErrorCode.ERR_LOGOUT.getCode() || status == ErrorCode.ERR_TOKENTIMEOUT.getCode() ||
status == ErrorCode.ERR_TOKENNOTFOUND.getCode())){
status == ErrorCode.ERR_TOKENNOTFOUND.getCode())) {
upgradeToken();
return true;
}

View File

@ -8,6 +8,7 @@ import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.pojo.entity.ServiceInfo;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo;
import com.dispose.security.arithmetic.CryptoHelper;
import com.pengxin.dispose.common.PengXinStartTaskItem;
import com.pengxin.dispose.common.PengXinStartTaskRsp;
import com.pengxin.dispose.common.PengXinStopTaskRsp;
@ -102,7 +103,7 @@ public class UpfAbilityImpl extends PengXinAbilityImpl {
public void initDeviceEnv(String urlPath, String username, String password) {
this.urlRootPath = urlPath;
this.username = username;
this.password = password;
this.password = new String(CryptoHelper.base64Decryption(password));
restfulInterface.setParams(1, 0);
//获取token值
upgradeToken();

View File

@ -82,18 +82,18 @@ public class VirtualAbilityImpl implements DisposeAbility {
@Override
public MulReturnType<ErrorCode, DeviceFirewareInfo> getAbilityDeviceFireware() {
return new MulReturnType<>(ErrorCode.ERR_OK,
DeviceFirewareInfo.builder()
.vendor("Virtual")
.model("Dispose_1000")
.firmware("Unknown")
.os("Unknown")
.kernel("Linux")
.arch("x86_64")
.version("Virtual_Device_2.0")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
DeviceFirewareInfo.builder()
.vendor("Virtual")
.model("Dispose_1000")
.firmware("Unknown")
.os("Unknown")
.kernel("Linux")
.arch("x86_64")
.version("Virtual_Device_2.0")
.memory(-1)
.freeMemory(-1)
.cpuUsed(-1)
.build());
}
/**

View File

@ -28,6 +28,7 @@ import com.dispose.pojo.entity.DisposeDevice;
import com.dispose.pojo.po.MulReturnType;
import com.dispose.security.annotation.Decryption;
import com.dispose.security.annotation.Encryption;
import com.dispose.security.arithmetic.CryptoHelper;
import com.dispose.service.DisposeDeviceManagerService;
import com.dispose.validation.group.ValidGroups;
import com.github.pagehelper.PageInfo;
@ -45,6 +46,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@ -70,7 +72,7 @@ public class DisposeDeviceManagerController {
private DisposeDeviceManagerService disposeDeviceManagerService;
/**
* Request to device list list.
* Request to device list.
*
* @param req the req
* @return the list
@ -91,14 +93,14 @@ public class DisposeDeviceManagerController {
.ipAddr(v.getIpAddr())
.ipPort(port)
.deviceType(CommonEnumHandler.codeOf(DisposeDeviceType.class,
v.getDeviceType()))
v.getDeviceType()))
.areaCode(v.getAreaCode())
.deviceName(v.getDeviceName())
.manufacturer(v.getManufacturer())
.model(v.getModel())
.version(v.getVersion())
.userName(v.getUserName())
.password(v.getPassword())
.password(CryptoHelper.base64Encryption(v.getPassword().getBytes(StandardCharsets.UTF_8)))
.urlPath(v.getUrlPath())
.urlType(hType)
.readme(v.getReadme())
@ -112,7 +114,7 @@ public class DisposeDeviceManagerController {
DisposeCapacity cap = DisposeCapacity.builder()
.capacityType(CommonEnumHandler.codeOf(DisposeCapacityType.class, k.getCapacityType()))
.ipType(k.getIpType() == null ? IpAddrType.IPV4 :
CommonEnumHandler.codeOf(IpAddrType.class, k.getIpType()))
CommonEnumHandler.codeOf(IpAddrType.class, k.getIpType()))
.objectType(CommonEnumHandler.codeOf(DisposeObjectType.class, k.getObjectType()))
.protectIp(k.getProtectIp() == null ? "" : k.getProtectIp())
.reserveNetflow(k.getReserveNetflow())
@ -265,7 +267,7 @@ public class DisposeDeviceManagerController {
MulReturnType<PageInfo<DisposeDevice>, List<DisposeDevice>> ret =
disposeDeviceManagerService.getPageDisposeDevice(mr.getMsgContent().getStartPage(),
mr.getMsgContent().getPageSize());
mr.getMsgContent().getPageSize());
GetDeviceRsp rspInfo = new GetDeviceRsp();
@ -284,7 +286,7 @@ public class DisposeDeviceManagerController {
GetDeviceDetail devInfo = new GetDeviceDetail();
devInfo.setId(v.getId().toString());
devInfo.setIpAddr(DisposeConfigValue.USED_PRIVACY_PROTECT ?
PrivacyHelper.ipAddressPrivacy(v.getIpAddr()) : v.getIpAddr());
PrivacyHelper.ipAddressPrivacy(v.getIpAddr()) : v.getIpAddr());
devInfo.setIpPort(Helper.ipPortNormalize(v.getIpPort(), v.getUrlType()));
devInfo.setDeviceType(v.getDeviceType().getValue());
devInfo.setAreaCode(v.getAreaCode());
@ -293,7 +295,7 @@ public class DisposeDeviceManagerController {
devInfo.setModel(v.getModel());
devInfo.setVersion(v.getVersion());
devInfo.setUserName(DisposeConfigValue.USED_PRIVACY_PROTECT ?
PrivacyHelper.usernamePrivacy(v.getUserName()) : v.getUserName());
PrivacyHelper.usernamePrivacy(v.getUserName()) : v.getUserName());
devInfo.setUrlType(v.getUrlType().getValue());
devInfo.setReadme(v.getReadme());
devInfo.setDevStatus(v.getStatus().getValue());