diff --git a/src/main/java/ru/serega6531/packmate/controller/PatternController.java b/src/main/java/ru/serega6531/packmate/controller/PatternController.java index 1f95ffc..6ddb437 100644 --- a/src/main/java/ru/serega6531/packmate/controller/PatternController.java +++ b/src/main/java/ru/serega6531/packmate/controller/PatternController.java @@ -1,13 +1,18 @@ package ru.serega6531.packmate.controller; 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.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import ru.serega6531.packmate.model.Pattern; import ru.serega6531.packmate.model.pojo.PatternDto; import ru.serega6531.packmate.service.PatternService; import java.util.List; -import java.util.stream.Collectors; @RestController @RequestMapping("/api/pattern/") @@ -24,7 +29,7 @@ public class PatternController { public List getPatterns() { return service.findAll() .stream().map(service::toDto) - .collect(Collectors.toList()); + .toList(); } @PostMapping("/{id}") diff --git a/src/main/java/ru/serega6531/packmate/controller/ServiceController.java b/src/main/java/ru/serega6531/packmate/controller/ServiceController.java index b317c6b..d23ce3a 100644 --- a/src/main/java/ru/serega6531/packmate/controller/ServiceController.java +++ b/src/main/java/ru/serega6531/packmate/controller/ServiceController.java @@ -1,13 +1,18 @@ package ru.serega6531.packmate.controller; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import ru.serega6531.packmate.model.CtfService; import ru.serega6531.packmate.model.pojo.ServiceDto; import ru.serega6531.packmate.service.ServicesService; import java.util.List; -import java.util.stream.Collectors; @RestController @RequestMapping("/api/service/") @@ -24,7 +29,7 @@ public class ServiceController { public List getServices() { return service.findAll().stream() .map(service::toDto) - .collect(Collectors.toList()); + .toList(); } @DeleteMapping("/{port}") diff --git a/src/main/java/ru/serega6531/packmate/controller/StreamController.java b/src/main/java/ru/serega6531/packmate/controller/StreamController.java index e0a77fa..12d888a 100644 --- a/src/main/java/ru/serega6531/packmate/controller/StreamController.java +++ b/src/main/java/ru/serega6531/packmate/controller/StreamController.java @@ -1,14 +1,17 @@ package ru.serega6531.packmate.controller; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import ru.serega6531.packmate.model.pojo.StreamPagination; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import ru.serega6531.packmate.model.pojo.StreamDto; +import ru.serega6531.packmate.model.pojo.StreamPagination; import ru.serega6531.packmate.service.StreamService; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; @RestController @RequestMapping("/api/stream/") @@ -25,14 +28,14 @@ public class StreamController { public List getStreams(@RequestBody StreamPagination pagination) { return service.findAll(pagination, Optional.empty(), pagination.isFavorites()).stream() .map(service::streamToDto) - .collect(Collectors.toList()); + .toList(); } @PostMapping("/{port}") public List getStreams(@PathVariable int port, @RequestBody StreamPagination pagination) { return service.findAll(pagination, Optional.of(port), pagination.isFavorites()).stream() .map(service::streamToDto) - .collect(Collectors.toList()); + .toList(); } @PostMapping("/{id}/favorite") diff --git a/src/main/java/ru/serega6531/packmate/model/pojo/CountersHolder.java b/src/main/java/ru/serega6531/packmate/model/pojo/CountersHolder.java index 49c5abf..980031b 100644 --- a/src/main/java/ru/serega6531/packmate/model/pojo/CountersHolder.java +++ b/src/main/java/ru/serega6531/packmate/model/pojo/CountersHolder.java @@ -1,23 +1,8 @@ package ru.serega6531.packmate.model.pojo; -import lombok.Getter; - import java.util.Map; -@Getter -public class CountersHolder { +public record CountersHolder(Map servicesPackets, Map servicesStreams, + int totalPackets, int totalStreams) { - private final Map servicesPackets; - private final Map servicesStreams; - - private final int totalPackets; - private final int totalStreams; - - public CountersHolder(Map servicesPackets, Map servicesStreams, - int totalPackets, int totalStreams) { - this.servicesPackets = servicesPackets; - this.servicesStreams = servicesStreams; - this.totalPackets = totalPackets; - this.totalStreams = totalStreams; - } } diff --git a/src/main/java/ru/serega6531/packmate/model/pojo/UnfinishedStream.java b/src/main/java/ru/serega6531/packmate/model/pojo/UnfinishedStream.java index d7da1f8..0f4523e 100644 --- a/src/main/java/ru/serega6531/packmate/model/pojo/UnfinishedStream.java +++ b/src/main/java/ru/serega6531/packmate/model/pojo/UnfinishedStream.java @@ -1,29 +1,18 @@ package ru.serega6531.packmate.model.pojo; -import lombok.AllArgsConstructor; -import lombok.Getter; import ru.serega6531.packmate.model.enums.Protocol; import java.net.InetAddress; -@AllArgsConstructor -@Getter -public class UnfinishedStream { - - private final InetAddress firstIp; - private final InetAddress secondIp; - private final int firstPort; - private final int secondPort; - private final Protocol protocol; +public record UnfinishedStream(InetAddress firstIp, InetAddress secondIp, int firstPort, int secondPort, + Protocol protocol) { @Override public boolean equals(Object obj) { - if (!(obj instanceof UnfinishedStream)) { + if (!(obj instanceof UnfinishedStream o)) { return false; } - UnfinishedStream o = (UnfinishedStream) obj; - boolean ipEq1 = firstIp.equals(o.firstIp) && secondIp.equals(o.secondIp); boolean ipEq2 = firstIp.equals(o.secondIp) && secondIp.equals(o.firstIp); boolean portEq1 = firstPort == o.firstPort && secondPort == o.secondPort; diff --git a/src/main/java/ru/serega6531/packmate/pcap/NoOpPcapWorker.java b/src/main/java/ru/serega6531/packmate/pcap/NoOpPcapWorker.java index f26c48b..174deb5 100644 --- a/src/main/java/ru/serega6531/packmate/pcap/NoOpPcapWorker.java +++ b/src/main/java/ru/serega6531/packmate/pcap/NoOpPcapWorker.java @@ -1,11 +1,10 @@ package ru.serega6531.packmate.pcap; -import org.pcap4j.core.PcapNativeException; import ru.serega6531.packmate.model.enums.Protocol; public class NoOpPcapWorker implements PcapWorker { @Override - public void start() throws PcapNativeException { + public void start() { } @Override diff --git a/src/main/java/ru/serega6531/packmate/service/PatternService.java b/src/main/java/ru/serega6531/packmate/service/PatternService.java index 4c05fe3..06fcc61 100644 --- a/src/main/java/ru/serega6531/packmate/service/PatternService.java +++ b/src/main/java/ru/serega6531/packmate/service/PatternService.java @@ -1,5 +1,6 @@ package ru.serega6531.packmate.service; +import jakarta.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -15,11 +16,13 @@ import ru.serega6531.packmate.model.pojo.PatternDto; import ru.serega6531.packmate.model.pojo.SubscriptionMessage; import ru.serega6531.packmate.repository.PatternRepository; -import jakarta.annotation.PostConstruct; import java.time.Instant; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; @Service @Slf4j @@ -63,7 +66,7 @@ public class PatternService { .filter(p -> p.getServiceId() == null || p.getServiceId().equals(service.getPort())) .filter(p -> p.getActionType() == actionType) .filter(p -> p.getDirectionType() == directionType || p.getDirectionType() == PatternDirectionType.BOTH) - .collect(Collectors.toList()); + .toList(); return new PatternMatcher(bytes, list).findMatches(); } diff --git a/src/main/java/ru/serega6531/packmate/service/StreamService.java b/src/main/java/ru/serega6531/packmate/service/StreamService.java index d43101f..82a0faa 100644 --- a/src/main/java/ru/serega6531/packmate/service/StreamService.java +++ b/src/main/java/ru/serega6531/packmate/service/StreamService.java @@ -13,11 +13,19 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import ru.serega6531.packmate.model.*; +import ru.serega6531.packmate.model.CtfService; +import ru.serega6531.packmate.model.FoundPattern; +import ru.serega6531.packmate.model.Packet; +import ru.serega6531.packmate.model.Pattern; +import ru.serega6531.packmate.model.Stream; import ru.serega6531.packmate.model.enums.PatternActionType; import ru.serega6531.packmate.model.enums.PatternDirectionType; import ru.serega6531.packmate.model.enums.SubscriptionMessageType; -import ru.serega6531.packmate.model.pojo.*; +import ru.serega6531.packmate.model.pojo.PacketDto; +import ru.serega6531.packmate.model.pojo.StreamDto; +import ru.serega6531.packmate.model.pojo.StreamPagination; +import ru.serega6531.packmate.model.pojo.SubscriptionMessage; +import ru.serega6531.packmate.model.pojo.UnfinishedStream; import ru.serega6531.packmate.repository.StreamRepository; import ru.serega6531.packmate.service.optimization.RsaKeysHolder; import ru.serega6531.packmate.service.optimization.StreamOptimizer; @@ -28,7 +36,6 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.regex.Matcher; -import java.util.stream.Collectors; @Service @Slf4j @@ -71,15 +78,15 @@ public class StreamService { @Transactional(propagation = Propagation.NEVER) public boolean saveNewStream(UnfinishedStream unfinishedStream, List packets) { final var serviceOptional = servicesService.findService( - unfinishedStream.getFirstIp(), - unfinishedStream.getFirstPort(), - unfinishedStream.getSecondIp(), - unfinishedStream.getSecondPort() + unfinishedStream.firstIp(), + unfinishedStream.firstPort(), + unfinishedStream.secondIp(), + unfinishedStream.secondPort() ); if (serviceOptional.isEmpty()) { log.warn("Failed to save the stream: service at port {} or {} does not exist", - unfinishedStream.getFirstPort(), unfinishedStream.getSecondPort()); + unfinishedStream.firstPort(), unfinishedStream.secondPort()); return false; } CtfService service = serviceOptional.get(); @@ -107,7 +114,7 @@ public class StreamService { .findFirst(); final Stream stream = new Stream(); - stream.setProtocol(unfinishedStream.getProtocol()); + stream.setProtocol(unfinishedStream.protocol()); stream.setTtl(firstIncoming.map(Packet::getTtl).orElse(0)); stream.setStartTimestamp(packets.get(0).getTimestamp()); stream.setEndTimestamp(packets.get(packets.size() - 1).getTimestamp()); @@ -190,7 +197,7 @@ public class StreamService { foundPatterns.addAll(matches.stream() .map(FoundPattern::getPatternId) .map(patternService::find) - .collect(Collectors.toList())); + .toList()); } return foundPatterns; @@ -245,7 +252,6 @@ public class StreamService { } public List getPackets(long streamId, @Nullable Long startingFrom, int pageSize) { -// long safeStartingFrom = startingFrom != null ? startingFrom : 0; return repository.getPackets(streamId, startingFrom, Pageable.ofSize(pageSize)); }