syntax error fix

This commit is contained in:
insanity 2018-06-05 22:20:07 +09:00
parent 07ef365ad3
commit b4eed25b5f
8 changed files with 274 additions and 200 deletions

View File

@ -49,7 +49,7 @@
<dependency>
<groupId>com.loafle.overflow</groupId>
<artifactId>commons-java</artifactId>
<version>1.0.6-SNAPSHOT</version>
<version>1.0.8-SNAPSHOT</version>
</dependency>
<dependency>

View File

@ -9,6 +9,6 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public interface InfraHostDAO extends JpaRepository<InfraHost, Long> {
InfraHost findByIpv4(String ipv4);
InfraHost findByProbeIdAndIpv4(Long probeId, String ipv4);
}

View File

@ -1,5 +1,6 @@
package com.loafle.overflow.central.module.infra.service;
import com.loafle.overflow.central.module.infra.dao.InfraHostDAO;
import com.loafle.overflow.core.exception.OverflowException;
import com.loafle.overflow.model.infra.InfraHost;
@ -24,8 +25,8 @@ public class CentralInfraHostService implements InfraHostService {
return this.infraHostDAO.findOne(id);
}
public InfraHost readByIp(String ip) throws OverflowException {
return this.infraHostDAO.findByIpv4(ip);
public InfraHost readByProbeIdAndIpv4(Long probeId, String ip) throws OverflowException {
return this.infraHostDAO.findByProbeIdAndIpv4(probeId, ip);
}
}

View File

@ -39,7 +39,6 @@ public class CentralInfraService implements InfraService {
public Infra read(Long id) throws OverflowException {
Infra infra = this.infraDAO.findOne(id);
infra.getTarget().setSensors(this.sensorDAO.findAllByTargetId(infra.getTarget().getId()));
return infra;
}
@ -55,9 +54,6 @@ public class CentralInfraService implements InfraService {
}
Page<Infra> infraList = this.infraDAO.findAllByProbeInAndTargetNotNull(probeList, PageUtil.getPageRequest(pageParams));
for (Infra infra : infraList) {
infra.getTarget().setSensors(this.sensorDAO.findAllByTargetId(infra.getTarget().getId()));
}
return infraList;
}

View File

@ -73,13 +73,12 @@ public class CentralSensorService implements SensorService {
}
public Page<Sensor> readAllByInfraID(Long infraID, PageParams pageParams) throws OverflowException {
Infra dbInfra = this.infraService.read(infraID);
if (dbInfra == null || dbInfra.getTarget() == null) {
throw new OverflowException("", new Throwable());
}
return this.sensorDAO.findAllByTargetId(dbInfra.getTarget().getId(), PageUtil.getPageRequest(pageParams));
// Infra dbInfra = this.infraService.read(infraID);
// if (dbInfra == null) {
// throw new OverflowException("", new Throwable());
// }
// return this.sensorDAO.findAllByTargetId(dbInfra.getTarget().getId(), PageUtil.getPageRequest(pageParams));
return null;
}
public Page<Sensor> readAllByTargetID(Long targetID, PageParams pageParams) throws OverflowException {

View File

@ -9,4 +9,5 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public interface TargetDAO extends JpaRepository<Target, Long> {
Target findByInfraId(Long infraId);
}

View File

@ -1,226 +1,226 @@
package com.loafle.overflow.central.module.target.service;
// package com.loafle.overflow.central.module.target.service;
import com.loafle.overflow.central.module.infra.service.*;
import com.loafle.overflow.core.exception.OverflowException;
import com.loafle.overflow.core.type.PortType;
import com.loafle.overflow.model.discovery.Host;
import com.loafle.overflow.model.discovery.Port;
// import com.loafle.overflow.central.module.infra.service.*;
// import com.loafle.overflow.core.exception.OverflowException;
// import com.loafle.overflow.core.type.PortType;
// import com.loafle.overflow.model.discovery.Host;
// import com.loafle.overflow.model.discovery.Port;
import com.loafle.overflow.model.infra.*;
import com.loafle.overflow.model.meta.MetaInfraType;
import com.loafle.overflow.model.meta.MetaInfraVendor;
import com.loafle.overflow.model.probe.Probe;
import com.loafle.overflow.model.target.Target;
import com.loafle.overflow.service.central.target.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
// import com.loafle.overflow.model.infra.*;
// import com.loafle.overflow.model.meta.MetaInfraType;
// import com.loafle.overflow.model.meta.MetaInfraVendor;
// import com.loafle.overflow.model.probe.Probe;
// import com.loafle.overflow.model.target.Target;
// import com.loafle.overflow.service.central.target.*;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
// import javax.transaction.Transactional;
// import java.util.List;
/**
* Created by snoop on 17. 6. 28.
*/
@Service("TargetDiscoveryService")
public class CentralTargetDiscoveryService implements TargetDiscoveryService {
// /**
// * Created by snoop on 17. 6. 28.
// */
// @Service("TargetDiscoveryService")
// public class CentralTargetDiscoveryService implements TargetDiscoveryService {
@Autowired
private TargetService targetService;
// @Autowired
// private TargetService targetService;
@Autowired
private CentralInfraMachineService infraMachineService;
// @Autowired
// private CentralInfraMachineService infraMachineService;
@Autowired
private CentralInfraOSService infraOSService;
// @Autowired
// private CentralInfraOSService infraOSService;
@Autowired
private CentralInfraHostService infraHostService;
// @Autowired
// private CentralInfraHostService infraHostService;
// @Autowired
// private CentralInfraService infraService;
// // @Autowired
// // private CentralInfraService infraService;
@Autowired
private CentralInfraOSPortService infraOSPortService;
// @Autowired
// private CentralInfraOSPortService infraOSPortService;
@Autowired
private CentralInfraServiceService infraServiceService;
// @Autowired
// private CentralInfraServiceService infraServiceService;
@Transactional
public boolean saveAllTarget(List<Host> hosts, Probe probe) throws OverflowException {
// @Transactional
// public boolean saveAllTarget(List<Host> hosts, Probe probe) throws OverflowException {
InfraHost infraHost = null;
// InfraHost infraHost = null;
for (Host host : hosts) {
// for (Host host : hosts) {
infraHost = this.createAndReadHost(host, probe);
// infraHost = this.createAndReadHost(host, probe);
this.createPort(infraHost, host, probe);
// this.createPort(infraHost, host, probe);
}
return true;
}
// }
// return true;
// }
private void createService(InfraHost infraHost, Port port, Probe probe) throws OverflowException {
// private void createService(InfraHost infraHost, Port port, Probe probe) throws OverflowException {
MetaInfraType typeService = new MetaInfraType(7);
// MetaInfraType typeService = new MetaInfraType(7);
String portType = "UDP";
// String portType = "UDP";
if (port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP || port.getPortType() == null) {
portType = "TCP";
}
// if (port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP || port.getPortType() == null) {
// portType = "TCP";
// }
if (port.getServiceList() == null) {
return;
}
// if (port.getServiceList() == null) {
// return;
// }
// for(String key : port.getServices().keySet()) {
for (com.loafle.overflow.model.discovery.Service service : port.getServiceList()) {
// // for(String key : port.getServices().keySet()) {
// for (com.loafle.overflow.model.discovery.Service service : port.getServiceList()) {
// com.loafle.overflow.module.discovery.model.Service service =
// port.getServices().get(key);
// // com.loafle.overflow.module.discovery.model.Service service =
// // port.getServices().get(key);
InfraService dbInfraService = this.infraServiceService
.readByInfraHostIDAndPortAndPortType(infraHost.getId(), port.getPortNumber(), portType);
// InfraService dbInfraService = this.infraServiceService
// .readByInfraHostIDAndPortAndPortType(infraHost.getId(), port.getPortNumber(), portType);
if (dbInfraService != null) {
if (service.isTarget() && dbInfraService.getTarget() == null) {
Target targetService = new Target();
targetService.setDisplayName(service.getServiceName());
this.targetService.regist(targetService, probe);
dbInfraService.setTarget(targetService);
this.infraServiceService.regist(dbInfraService);
}
continue;
}
// if (dbInfraService != null) {
// if (service.isTarget() && dbInfraService.getTarget() == null) {
// Target targetService = new Target();
// targetService.setDisplayName(service.getServiceName());
// this.targetService.regist(targetService, probe);
// dbInfraService.setTarget(targetService);
// this.infraServiceService.regist(dbInfraService);
// }
// continue;
// }
InfraService infraService = new InfraService();
infraService.setInfraHost(infraHost);
infraService.setPort(port.getPortNumber());
infraService.setPortType(portType);
infraService.setMetaInfraType(typeService);
infraService.setProbe(probe);
// InfraService infraService = new InfraService();
// infraService.setInfraHost(infraHost);
// infraService.setPort(port.getPortNumber());
// infraService.setPortType(portType);
// infraService.setMetaInfraType(typeService);
// infraService.setProbe(probe);
if (port.getPortType() == PortType.TLS) {
infraService.setTlsType(true);
}
infraService.setMetaInfraVendor(MetaInfraVendor.CreateInfraVendorByService(service.getServiceName()));
// if (port.getPortType() == PortType.TLS) {
// infraService.setTlsType(true);
// }
// infraService.setMetaInfraVendor(MetaInfraVendor.CreateInfraVendorByService(service.getServiceName()));
if (service.isTarget()) {
Target targetService = new Target();
targetService.setDisplayName(service.getServiceName());
this.targetService.regist(targetService, probe);
infraService.setTarget(targetService);
}
// if (service.isTarget()) {
// Target targetService = new Target();
// targetService.setDisplayName(service.getServiceName());
// this.targetService.regist(targetService, probe);
// infraService.setTarget(targetService);
// }
this.infraServiceService.regist(infraService);
// this.infraServiceService.regist(infraService);
}
// }
}
// }
private void createPort(InfraHost infraHost, Host host, Probe probe) throws OverflowException {
// private void createPort(InfraHost infraHost, Host host, Probe probe) throws OverflowException {
// if(host.getPorts() == null) {
// return;
// }
// // if(host.getPorts() == null) {
// // return;
// // }
String portType = "UDP";
// String portType = "UDP";
MetaInfraType typePort = new MetaInfraType(6);
// MetaInfraType typePort = new MetaInfraType(6);
InfraOS infraOS = infraHost.getInfraOS();
// InfraOS infraOS = infraHost.getInfraOS();
// for( String key: host.getPorts().keySet()) {
// // for( String key: host.getPorts().keySet()) {
if (host.getPortList() == null) {
return;
}
// if (host.getPortList() == null) {
// return;
// }
for (Port port : host.getPortList()) {
// Port port = host.getPorts().get(key);
// for (Port port : host.getPortList()) {
// // Port port = host.getPorts().get(key);
if (port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP) {
portType = "TCP";
}
// if (port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP) {
// portType = "TCP";
// }
InfraOSPort dbInfraOSPort = this.infraOSPortService.readByInfraOSIDAndPortAndPortType(infraOS.getId(), port.getPortNumber(),
portType);
if (dbInfraOSPort == null) {
InfraOSPort infraOSPort = new InfraOSPort();
infraOSPort.setInfraOS(infraOS);
infraOSPort.setPort(port.getPortNumber());
infraOSPort.setPortType(portType);
infraOSPort.setProbe(probe);
infraOSPort.setMetaInfraType(typePort);
// InfraOSPort dbInfraOSPort = this.infraOSPortService.readByInfraOSIDAndPortAndPortType(infraOS.getId(), port.getPortNumber(),
// portType);
// if (dbInfraOSPort == null) {
// InfraOSPort infraOSPort = new InfraOSPort();
// infraOSPort.setInfraOS(infraOS);
// infraOSPort.setPort(port.getPortNumber());
// infraOSPort.setPortType(portType);
// infraOSPort.setProbe(probe);
// infraOSPort.setMetaInfraType(typePort);
if (port.getPortType() == PortType.TLS) {
infraOSPort.setTlsType(true);
}
infraOSPort.setMetaInfraVendor(MetaInfraVendor.CreateInfraVendorByPort(port.getPortNumber()));
this.infraOSPortService.regist(infraOSPort);
}
// if (port.getPortType() == PortType.TLS) {
// infraOSPort.setTlsType(true);
// }
// infraOSPort.setMetaInfraVendor(MetaInfraVendor.CreateInfraVendorByPort(port.getPortNumber()));
// this.infraOSPortService.regist(infraOSPort);
// }
this.createService(infraHost, port, probe);
}
}
// this.createService(infraHost, port, probe);
// }
// }
private InfraHost createAndReadHost(Host host, Probe probe) throws OverflowException {
// private InfraHost createAndReadHost(Host host, Probe probe) throws OverflowException {
InfraHost infraHost = this.infraHostService.readByIp(host.getIpv4());
if (infraHost != null) {
// InfraHost infraHost = this.infraHostService.readByIp(host.getIpv4());
// if (infraHost != null) {
if (host.isTarget() && infraHost.getTarget() == null) {
Target target = new Target();
target.setDisplayName(host.getIpv4() + "-Host");
// if (host.isTarget() && infraHost.getTarget() == null) {
// Target target = new Target();
// target.setDisplayName(host.getIpv4() + "-Host");
this.targetService.regist(target, probe);
infraHost.setTarget(target);
this.infraHostService.regist(infraHost);
}
// this.targetService.regist(target, probe);
// infraHost.setTarget(target);
// this.infraHostService.regist(infraHost);
// }
return infraHost;
} else {
MetaInfraType typeMachine = new MetaInfraType(1); // 1 = Machine;
// return infraHost;
// } else {
// MetaInfraType typeMachine = new MetaInfraType(1); // 1 = Machine;
MetaInfraType typeOS = new MetaInfraType(3);// 3 = Os
// MetaInfraType typeOS = new MetaInfraType(3);// 3 = Os
MetaInfraType typeHost = new MetaInfraType(2); // 2 = Host
// MetaInfraType typeHost = new MetaInfraType(2); // 2 = Host
InfraMachine infraMachine = new InfraMachine();
infraMachine.setProbe(probe);
infraMachine.setMetaInfraType(typeMachine);
infraMachine.setMeta(host.getIpv4() + "-MACHINE");
this.infraMachineService.regist(infraMachine);
// InfraMachine infraMachine = new InfraMachine();
// infraMachine.setProbe(probe);
// infraMachine.setMetaInfraType(typeMachine);
// infraMachine.setMeta(host.getIpv4() + "-MACHINE");
// this.infraMachineService.regist(infraMachine);
InfraOS infraOS = new InfraOS();
infraOS.setInfraMachine(infraMachine);
infraOS.setMetaInfraVendor(MetaInfraVendor.CreateInfraVendorByOS(host.getOs()));
infraOS.setMetaInfraType(typeOS);
infraOS.setProbe(probe);
infraOS.setMeta(host.getIpv4() + "-OS");
this.infraOSService.regist(infraOS);
// InfraOS infraOS = new InfraOS();
// infraOS.setInfraMachine(infraMachine);
// infraOS.setMetaInfraVendor(MetaInfraVendor.CreateInfraVendorByOS(host.getOs()));
// infraOS.setMetaInfraType(typeOS);
// infraOS.setProbe(probe);
// infraOS.setMeta(host.getIpv4() + "-OS");
// this.infraOSService.regist(infraOS);
InfraHost newInfraHost = new InfraHost();
newInfraHost.setIpv4(host.getIpv4());
newInfraHost.setMac(host.getMac());
newInfraHost.setInfraOS(infraOS);
newInfraHost.setMetaInfraType(typeHost);
newInfraHost.setProbe(probe);
// InfraHost newInfraHost = new InfraHost();
// newInfraHost.setIpv4(host.getIpv4());
// newInfraHost.setMac(host.getMac());
// newInfraHost.setInfraOS(infraOS);
// newInfraHost.setMetaInfraType(typeHost);
// newInfraHost.setProbe(probe);
if (host.isTarget()) {
Target target = new Target();
target.setDisplayName(host.getIpv4() + "-Host");
// if (host.isTarget()) {
// Target target = new Target();
// target.setDisplayName(host.getIpv4() + "-Host");
this.targetService.regist(target, probe);
newInfraHost.setTarget(target);
}
// this.targetService.regist(target, probe);
// newInfraHost.setTarget(target);
// }
this.infraHostService.regist(newInfraHost);
infraHost = newInfraHost;
}
// this.infraHostService.regist(newInfraHost);
// infraHost = newInfraHost;
// }
return infraHost;
}
// return infraHost;
// }
}
// }

View File

@ -1,24 +1,31 @@
package com.loafle.overflow.central.module.target.service;
import java.util.ArrayList;
import java.util.List;
import com.loafle.overflow.central.module.infra.service.CentralInfraHostService;
import com.loafle.overflow.central.module.infra.service.CentralInfraServiceService;
import com.loafle.overflow.central.module.probe.service.CentralProbeService;
import com.loafle.overflow.central.module.target.dao.TargetDAO;
import com.loafle.overflow.core.exception.OverflowException;
import com.loafle.overflow.core.type.CryptoType;
import com.loafle.overflow.model.discovery.Host;
import com.loafle.overflow.model.discovery.Service;
import com.loafle.overflow.model.infra.InfraHost;
import com.loafle.overflow.model.infra.InfraService;
import com.loafle.overflow.model.meta.MetaInfraType;
import com.loafle.overflow.model.meta.MetaInfraVendor;
import com.loafle.overflow.model.probe.Probe;
import com.loafle.overflow.model.target.Target;
import com.loafle.overflow.service.central.target.TargetService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* Created by insanity on 17. 6. 28.
*/
@Service("TargetService")
@org.springframework.stereotype.Service("TargetService")
public class CentralTargetService implements TargetService {
@Autowired
@ -27,6 +34,8 @@ public class CentralTargetService implements TargetService {
private CentralProbeService probeService;
@Autowired
private CentralInfraHostService infraHostService;
@Autowired
private CentralInfraServiceService infraServiceService;
@Transactional
public Target regist(Target target, Probe probe) throws OverflowException {
@ -73,20 +82,88 @@ public class CentralTargetService implements TargetService {
return this.targetDAO.save(t);
}
@Transactional
public List<Target> registDiscoveredTargets(Long probeId, List<Host> hosts,
List<com.loafle.overflow.model.discovery.Service> services) throws OverflowException {
/*
* 해당 host의 mac에 해당하는 infraHost가 이미 존재하는지 검사 infraHost가 없다면 create infraHost가
* 있다면 update infraHost.getTarget() 있어도 무조건 새로운 target으로 연결
*
*
* for(Host host : hosts) { Target target = new Target();
*
* MetaInfraType infraType = new MetaInfraType(); infraType.setId(2); InfraHost
* infraHost = new InfraHost(); infraHost.setInfraType(infraType);
* infraHost.setProbe(new Probe(probeId)); infraHost.setTarget(target); }
*/
return null;
public Target readExistHostTarget(Long probeId, String ip) throws OverflowException {
InfraHost infraHost = this.infraHostService.readByProbeIdAndIpv4(probeId, ip);
if (null == infraHost) return null;
return this.targetDAO.findByInfraId(infraHost.getId());
}
public Target readExistServiceTarget(Long hostId, int portNumber, String portType) throws OverflowException {
InfraService infraService = this.infraServiceService.readByInfraHostIDAndPortAndPortType(hostId, portNumber, portType);
if (null == infraService) return null;
return this.targetDAO.findByInfraId(infraService.getId());
}
@Transactional
public List<Target> registDiscoveredTargets(Long probeId, List<Host> hosts, List<Service> services)
throws OverflowException {
List<Target> targets = new ArrayList<Target>();
targets.addAll(registDiscoveredHostTargets(probeId, hosts));
targets.addAll(this.registDiscoveredServiceTargets(probeId, services));
return targets;
}
private List<Target> registDiscoveredHostTargets(Long probeId, List<Host> hosts) throws OverflowException {
List<Target> targets = new ArrayList<>();
if (null == hosts)
return targets;
for (Host host : hosts) {
InfraHost infraHost = this.registInfraHostByDiscoveredHost(host, probeId);
Target target = new Target();
target.setInfra(infraHost);
String displayName = host.getIpv6() == null ? host.getIpv6() : host.getIpv4();
target.setDisplayName(displayName);
targets.add(this.targetDAO.save(target));
}
return targets;
}
private List<Target> registDiscoveredServiceTargets(Long probeId, List<Service> services) throws OverflowException {
List<Target> targets = new ArrayList<>();
if (null == services)
return targets;
for (Service service : services) {
Host host = service.getPort().getHost();
InfraHost infraHost = null;
InfraHost existInfraHost = this.infraHostService.readByProbeIdAndIpv4(probeId, host.getIpv4());
InfraService infraService = null;
if (null != existInfraHost) {
infraHost = existInfraHost;
} else {
infraHost = this.registInfraHostByDiscoveredHost(host, probeId);
infraService = this.registInfraServiceByDiscoveredService(infraHost, service, probeId);
}
Target target = new Target();
target.setInfra(infraService);
String displayName = service.getServiceName();
target.setDisplayName(displayName);
targets.add(this.targetDAO.save(target));
}
return targets;
}
private InfraHost registInfraHostByDiscoveredHost(Host host, Long probeId) throws OverflowException {
InfraHost infraHost = new InfraHost();
infraHost.setMetaInfraType(new MetaInfraType(2));
infraHost.setProbe(new Probe(probeId));
infraHost.setIpv4(host.getIpv4());
infraHost.setIpv6(host.getIpv6());
infraHost.setMac(host.getMac());
return this.infraHostService.regist(infraHost);
}
private InfraService registInfraServiceByDiscoveredService(InfraHost infraHost, Service service, Long probeId) throws OverflowException {
InfraService infraService = new InfraService();
infraHost.setMetaInfraType(new MetaInfraType(7));
infraService.setInfraHost(infraHost);
infraService.setPort(service.getPort().getPortNumber());
infraService.setPortType(service.getPort().getPortType().toString());
infraService.setTlsType(service.getCryptoType() == CryptoType.TLS);
infraService.setMetaInfraVendor(MetaInfraVendor.CreateInfraVendorByService(service.getServiceName()));
return this.infraServiceService.regist(infraService);
}
}