Возможность удалять старые данные

This commit is contained in:
sshkurov
2022-01-29 23:07:55 +03:00
parent 7cf7233c4b
commit 560e0d444f
11 changed files with 183 additions and 53 deletions

View File

@@ -1,18 +1,23 @@
package ru.serega6531.packmate.model;
import lombok.Data;
import lombok.*;
import org.hibernate.Hibernate;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Objects;
@Data
@Getter
@Setter
@ToString
@RequiredArgsConstructor
@Entity
@Table(name = "service")
public class CtfService {
@Id
private int port;
private Integer port;
private String name;
@@ -28,4 +33,16 @@ public class CtfService {
private boolean parseWebSockets;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
CtfService that = (CtfService) o;
return port != null && Objects.equals(port, that.port);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}

View File

@@ -1,9 +1,11 @@
package ru.serega6531.packmate.model;
import lombok.*;
import org.hibernate.Hibernate;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Objects;
@Entity
@GenericGenerator(
@@ -20,12 +22,11 @@ import javax.persistence.*;
@Builder
@Getter
@ToString
@EqualsAndHashCode(exclude = "packet")
public class FoundPattern {
@Id
@GeneratedValue(generator = "found_pattern_generator")
private int id;
private Long id;
@ManyToOne
@JoinColumn(name = "packet_id", nullable = false)
@@ -38,6 +39,18 @@ public class FoundPattern {
private int endPosition;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
FoundPattern that = (FoundPattern) o;
return id != null && Objects.equals(id, that.id);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}

View File

@@ -1,12 +1,17 @@
package ru.serega6531.packmate.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;
import org.hibernate.Hibernate;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Objects;
import java.util.Set;
@Data
@Getter
@Setter
@RequiredArgsConstructor
@Entity
@GenericGenerator(
name = "packet_generator",
@@ -17,11 +22,9 @@ import java.util.Set;
@org.hibernate.annotations.Parameter(name = "increment_size", value = "1")
}
)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(indexes = { @Index(name = "stream_id_index", columnList = "stream_id") })
@EqualsAndHashCode(exclude = "stream")
public class Packet {
@Id
@@ -34,9 +37,9 @@ public class Packet {
@Transient
private int ttl;
@ManyToOne
@JoinColumn(name = "stream_id", nullable = false)
private Stream stream;
@Column(name = "stream_id")
@JsonIgnore
private Long streamId;
@OneToMany(mappedBy = "packet", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<FoundPattern> matches;
@@ -62,4 +65,16 @@ public class Packet {
return "Packet(id=" + id + ", content=" + getContentString() + ")";
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
Packet packet = (Packet) o;
return id != null && Objects.equals(id, packet.id);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}

View File

@@ -1,17 +1,21 @@
package ru.serega6531.packmate.model;
import lombok.Data;
import lombok.ToString;
import lombok.*;
import org.hibernate.Hibernate;
import org.hibernate.annotations.GenericGenerator;
import ru.serega6531.packmate.model.enums.PatternActionType;
import ru.serega6531.packmate.model.enums.PatternDirectionType;
import ru.serega6531.packmate.model.enums.PatternSearchType;
import javax.persistence.*;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Objects;
@Data
@ToString(exclude = "matchedStreams")
@Getter
@Setter
@RequiredArgsConstructor
@ToString
@Entity
@GenericGenerator(
name = "pattern_generator",
@@ -26,7 +30,7 @@ public class Pattern {
@Id
@GeneratedValue(generator = "pattern_generator")
private int id;
private Integer id;
private boolean enabled;
@@ -46,8 +50,16 @@ public class Pattern {
private long searchStartTimestamp;
@ManyToMany(mappedBy = "foundPatterns", fetch = FetchType.LAZY)
private List<Stream> matchedStreams;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
Pattern pattern = (Pattern) o;
return id != null && Objects.equals(id, pattern.id);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}

View File

@@ -1,17 +1,20 @@
package ru.serega6531.packmate.model;
import lombok.Data;
import lombok.ToString;
import lombok.*;
import org.hibernate.Hibernate;
import org.hibernate.annotations.GenericGenerator;
import ru.serega6531.packmate.model.enums.Protocol;
import javax.persistence.*;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
@Data
@ToString(exclude = "packets")
@Getter
@Setter
@ToString
@RequiredArgsConstructor
@Entity
@GenericGenerator(
name = "stream_generator",
@@ -33,8 +36,10 @@ public class Stream {
private Protocol protocol;
@OneToMany(mappedBy = "stream", cascade = CascadeType.ALL)
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "stream_id")
@OrderBy("id")
@ToString.Exclude
private List<Packet> packets;
private long startTimestamp;
@@ -42,6 +47,12 @@ public class Stream {
private long endTimestamp;
@ManyToMany
@JoinTable(
name = "stream_found_patterns",
joinColumns = @JoinColumn(name = "stream_id"),
inverseJoinColumns = @JoinColumn(name = "pattern_id")
)
@ToString.Exclude
private Set<Pattern> foundPatterns = new HashSet<>();
private boolean favorite;
@@ -52,4 +63,16 @@ public class Stream {
@Column(columnDefinition = "char(3)")
private String userAgentHash;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
Stream stream = (Stream) o;
return id != null && Objects.equals(id, stream.id);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}