Выбор сервиса в паттернах
This commit is contained in:
@@ -6,6 +6,7 @@ import org.modelmapper.ModelMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.serega6531.packmate.model.CtfService;
|
||||
import ru.serega6531.packmate.model.FoundPattern;
|
||||
import ru.serega6531.packmate.model.Pattern;
|
||||
import ru.serega6531.packmate.model.enums.PatternActionType;
|
||||
@@ -27,17 +28,19 @@ public class PatternService {
|
||||
private final PatternRepository repository;
|
||||
private final StreamService streamService;
|
||||
private final SubscriptionService subscriptionService;
|
||||
private final ModelMapper modelMapper;
|
||||
|
||||
private final Map<Integer, Pattern> patterns = new HashMap<>();
|
||||
private final ModelMapper modelMapper = new ModelMapper();
|
||||
|
||||
@Autowired
|
||||
public PatternService(PatternRepository repository,
|
||||
@Lazy StreamService streamService,
|
||||
SubscriptionService subscriptionService) {
|
||||
SubscriptionService subscriptionService,
|
||||
ModelMapper modelMapper) {
|
||||
this.repository = repository;
|
||||
this.streamService = streamService;
|
||||
this.subscriptionService = subscriptionService;
|
||||
this.modelMapper = modelMapper;
|
||||
|
||||
repository.findAll().forEach(p -> patterns.put(p.getId(), p));
|
||||
log.info("Loaded {} patterns", patterns.size());
|
||||
@@ -51,9 +54,10 @@ public class PatternService {
|
||||
return patterns.values();
|
||||
}
|
||||
|
||||
public Set<FoundPattern> findMatches(byte[] bytes, PatternDirectionType directionType, PatternActionType actionType) {
|
||||
public Set<FoundPattern> findMatches(byte[] bytes, CtfService service, PatternDirectionType directionType, PatternActionType actionType) {
|
||||
final List<Pattern> list = patterns.values().stream()
|
||||
.filter(Pattern::isEnabled)
|
||||
.filter(p -> p.getServiceId() == null || p.getServiceId() == service.getPort())
|
||||
.filter(p -> p.getActionType() == actionType)
|
||||
.filter(p -> p.getDirectionType() == directionType || p.getDirectionType() == PatternDirectionType.BOTH)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Reference in New Issue
Block a user