From 4e2473a3cc4f1159bcb4cd67a2b1bd6052cb7f54 Mon Sep 17 00:00:00 2001 From: Sergey Shkurov Date: Mon, 24 Apr 2023 01:29:12 +0300 Subject: [PATCH] Update libraries --- build.gradle.kts | 15 +++-- .../ApplicationConfiguration.java | 7 +-- .../configuration/SecurityConfiguration.java | 57 +++++++++++-------- .../serega6531/packmate/model/CtfService.java | 8 +-- .../packmate/model/FoundPattern.java | 2 +- .../ru/serega6531/packmate/model/Packet.java | 2 +- .../ru/serega6531/packmate/model/Pattern.java | 2 +- .../ru/serega6531/packmate/model/Stream.java | 2 +- .../packmate/repository/StreamRepository.java | 7 ++- .../packmate/service/PatternService.java | 2 +- .../packmate/service/ServicesService.java | 2 +- src/main/resources/application.yml | 2 - 12 files changed, 56 insertions(+), 52 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index c579784..c04c896 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("org.springframework.boot") version "2.7.10" + id("org.springframework.boot") version "3.0.6" id("java") id("io.spring.dependency-management") version "1.1.0" } @@ -28,22 +28,21 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.boot:spring-boot-starter-websocket") implementation("org.springframework.session:spring-session-core") - implementation("com.github.jmnarloch:modelmapper-spring-boot-starter:1.1.0") implementation(group = "org.apache.commons", name = "commons-lang3", version = "3.12.0") implementation(group = "commons-io", name = "commons-io", version = "2.11.0") implementation("org.pcap4j:pcap4j-core:1.8.2") implementation("org.pcap4j:pcap4j-packetfactory-static:1.8.2") - implementation(group = "com.google.guava", name = "guava", version = "31.0.1-jre") - implementation(group = "org.java-websocket", name = "Java-WebSocket", version = "1.5.1") - implementation(group = "org.bouncycastle", name = "bcprov-jdk15on", version = "1.69") + implementation(group = "com.google.guava", name = "guava", version = "31.1-jre") + implementation(group = "org.java-websocket", name = "Java-WebSocket", version = "1.5.3") + implementation(group = "org.bouncycastle", name = "bcprov-jdk15on", version = "1.70") implementation(group = "org.bouncycastle", name = "bctls-jdk15on", version = "1.70") - implementation(group = "org.modelmapper", name = "modelmapper", version = "2.4.5") - compileOnly("org.jetbrains:annotations:22.0.0") + implementation(group = "org.modelmapper", name = "modelmapper", version = "3.1.1") + compileOnly("org.jetbrains:annotations:24.0.1") compileOnly("org.projectlombok:lombok") runtimeOnly("org.springframework.boot:spring-boot-devtools") runtimeOnly("org.postgresql:postgresql") annotationProcessor("org.projectlombok:lombok") - testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") + testImplementation("org.junit.jupiter:junit-jupiter:5.9.2") } tasks.getByName("test") { diff --git a/src/main/java/ru/serega6531/packmate/configuration/ApplicationConfiguration.java b/src/main/java/ru/serega6531/packmate/configuration/ApplicationConfiguration.java index f86522c..8b005de 100644 --- a/src/main/java/ru/serega6531/packmate/configuration/ApplicationConfiguration.java +++ b/src/main/java/ru/serega6531/packmate/configuration/ApplicationConfiguration.java @@ -1,5 +1,6 @@ package ru.serega6531.packmate.configuration; +import org.modelmapper.ModelMapper; import org.pcap4j.core.PcapNativeException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -7,8 +8,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; import ru.serega6531.packmate.model.enums.CaptureMode; import ru.serega6531.packmate.pcap.FilePcapWorker; import ru.serega6531.packmate.pcap.LivePcapWorker; @@ -42,8 +41,8 @@ public class ApplicationConfiguration { } @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); + public ModelMapper modelMapper() { + return new ModelMapper(); } } diff --git a/src/main/java/ru/serega6531/packmate/configuration/SecurityConfiguration.java b/src/main/java/ru/serega6531/packmate/configuration/SecurityConfiguration.java index 0d8a2bf..606e862 100644 --- a/src/main/java/ru/serega6531/packmate/configuration/SecurityConfiguration.java +++ b/src/main/java/ru/serega6531/packmate/configuration/SecurityConfiguration.java @@ -1,21 +1,24 @@ package ru.serega6531.packmate.configuration; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.event.EventListener; import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; +import org.springframework.security.web.SecurityFilterChain; @Configuration @EnableWebSecurity @Slf4j -public class SecurityConfiguration extends WebSecurityConfigurerAdapter { +public class SecurityConfiguration { @Value("${account-login}") private String login; @@ -23,35 +26,39 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Value("${account-password}") private String password; - private final PasswordEncoder passwordEncoder; - - @Autowired - public SecurityConfiguration(PasswordEncoder passwordEncoder) { - this.passwordEncoder = passwordEncoder; - } - - @Autowired - public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { - auth.inMemoryAuthentication() - .withUser(login) + @Bean + public InMemoryUserDetailsManager userDetailsService(PasswordEncoder passwordEncoder) { + UserDetails user = User.builder() + .username(login) .password(passwordEncoder.encode(password)) - .authorities("ROLE_USER"); + .roles("USER") + .build(); + + return new InMemoryUserDetailsManager(user); } - @Override - protected void configure(HttpSecurity http) throws Exception { - http.csrf() + @Bean + public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { + return http.csrf() .disable() - .authorizeRequests() - .antMatchers("/site.webmanifest") - .permitAll() - .anyRequest().authenticated() - .and() + .authorizeHttpRequests((auth) -> + auth.requestMatchers("/site.webmanifest") + .permitAll() + .anyRequest() + .authenticated() + ) .httpBasic() .and() .headers() .frameOptions() - .sameOrigin(); + .sameOrigin() + .and() + .build(); + } + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); } @EventListener diff --git a/src/main/java/ru/serega6531/packmate/model/CtfService.java b/src/main/java/ru/serega6531/packmate/model/CtfService.java index 737f2fb..c58ae71 100644 --- a/src/main/java/ru/serega6531/packmate/model/CtfService.java +++ b/src/main/java/ru/serega6531/packmate/model/CtfService.java @@ -3,10 +3,10 @@ package ru.serega6531.packmate.model; import lombok.*; import org.hibernate.Hibernate; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import java.util.Objects; @Getter diff --git a/src/main/java/ru/serega6531/packmate/model/FoundPattern.java b/src/main/java/ru/serega6531/packmate/model/FoundPattern.java index 27b4500..724b89b 100644 --- a/src/main/java/ru/serega6531/packmate/model/FoundPattern.java +++ b/src/main/java/ru/serega6531/packmate/model/FoundPattern.java @@ -5,7 +5,7 @@ import org.hibernate.Hibernate; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; -import javax.persistence.*; +import jakarta.persistence.*; import java.util.Objects; @Entity diff --git a/src/main/java/ru/serega6531/packmate/model/Packet.java b/src/main/java/ru/serega6531/packmate/model/Packet.java index c35af64..d3e8d96 100644 --- a/src/main/java/ru/serega6531/packmate/model/Packet.java +++ b/src/main/java/ru/serega6531/packmate/model/Packet.java @@ -5,7 +5,7 @@ import org.hibernate.Hibernate; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; -import javax.persistence.*; +import jakarta.persistence.*; import java.util.Objects; import java.util.Set; diff --git a/src/main/java/ru/serega6531/packmate/model/Pattern.java b/src/main/java/ru/serega6531/packmate/model/Pattern.java index 6d5acad..345ed06 100644 --- a/src/main/java/ru/serega6531/packmate/model/Pattern.java +++ b/src/main/java/ru/serega6531/packmate/model/Pattern.java @@ -11,7 +11,7 @@ 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 jakarta.persistence.*; import java.util.Objects; @Getter diff --git a/src/main/java/ru/serega6531/packmate/model/Stream.java b/src/main/java/ru/serega6531/packmate/model/Stream.java index 4c2eb19..5eb553a 100644 --- a/src/main/java/ru/serega6531/packmate/model/Stream.java +++ b/src/main/java/ru/serega6531/packmate/model/Stream.java @@ -9,7 +9,7 @@ import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; import ru.serega6531.packmate.model.enums.Protocol; -import javax.persistence.*; +import jakarta.persistence.*; import java.util.HashSet; import java.util.List; import java.util.Objects; diff --git a/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java b/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java index 1af9dce..539cb50 100644 --- a/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java +++ b/src/main/java/ru/serega6531/packmate/repository/StreamRepository.java @@ -1,11 +1,13 @@ package ru.serega6531.packmate.repository; import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.*; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import ru.serega6531.packmate.model.Packet; import ru.serega6531.packmate.model.Stream; -import javax.persistence.QueryHint; import java.util.List; public interface StreamRepository extends JpaRepository, JpaSpecificationExecutor { @@ -22,7 +24,6 @@ public interface StreamRepository extends JpaRepository, JpaSpecif "AND (:startingFrom IS NULL OR p.id > :startingFrom) " + "ORDER BY p.id" ) - @QueryHints(@QueryHint(name = org.hibernate.jpa.QueryHints.HINT_PASS_DISTINCT_THROUGH, value = "false")) List getPackets(long streamId, Long startingFrom, Pageable pageable); } diff --git a/src/main/java/ru/serega6531/packmate/service/PatternService.java b/src/main/java/ru/serega6531/packmate/service/PatternService.java index 3af8832..59db84d 100644 --- a/src/main/java/ru/serega6531/packmate/service/PatternService.java +++ b/src/main/java/ru/serega6531/packmate/service/PatternService.java @@ -15,7 +15,7 @@ import ru.serega6531.packmate.model.pojo.PatternDto; import ru.serega6531.packmate.model.pojo.SubscriptionMessage; import ru.serega6531.packmate.repository.PatternRepository; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import java.time.Instant; import java.util.*; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/ru/serega6531/packmate/service/ServicesService.java b/src/main/java/ru/serega6531/packmate/service/ServicesService.java index 3d8454b..1255f14 100644 --- a/src/main/java/ru/serega6531/packmate/service/ServicesService.java +++ b/src/main/java/ru/serega6531/packmate/service/ServicesService.java @@ -12,7 +12,7 @@ import ru.serega6531.packmate.model.pojo.ServiceDto; import ru.serega6531.packmate.model.pojo.SubscriptionMessage; import ru.serega6531.packmate.repository.ServiceRepository; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.*; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3272e0b..a7e663a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -12,8 +12,6 @@ spring: jdbc: batch_size: 20 order_inserts: true - temp: - use_jdbc_metadata_defaults: false database-platform: org.hibernate.dialect.PostgreSQLDialect