Skip to content

Commit 76c7809

Browse files
authored
Merge pull request #1310 from xerikssonx/migrate_to_spring_boot_3
Migrate to spring boot 3
2 parents d2e72a8 + e53fafa commit 76c7809

File tree

24 files changed

+138
-113
lines changed

24 files changed

+138
-113
lines changed

pom.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<parent>
5656
<groupId>org.springframework.boot</groupId>
5757
<artifactId>spring-boot-starter-parent</artifactId>
58-
<version>2.7.18</version>
58+
<version>3.3.5</version>
5959
<relativePath/>
6060
</parent>
6161
<!-- =========================================================================================================== -->
@@ -73,12 +73,13 @@
7373
<!-- Libraries releases -->
7474

7575
<!-- Core -->
76-
<spring.version>2.7.18</spring.version>
76+
<spring.version>3.3.5</spring.version>
7777
<reactor.version>Dysprosium-SR25</reactor.version>
7878
<xchange.version>5.0.13</xchange.version>
7979
<bucket4j.version>8.0.1</bucket4j.version>
8080
<liquibase.version>4.29.1</liquibase.version>
8181
<opencsv.version>5.9</opencsv.version>
82+
<javax.ws.rs.version>2.1.1</javax.ws.rs.version>
8283

8384
<!-- Core utils -->
8485
<lombok.version>1.18.34</lombok.version>
@@ -93,7 +94,7 @@
9394
<jackson.version>2.15.2</jackson.version>
9495

9596
<!-- GraphQL API -->
96-
<graphql-dgs.version>5.3.0</graphql-dgs.version>
97+
<graphql-dgs.version>9.1.3</graphql-dgs.version>
9798

9899
<!-- Maven -->
99100
<maven.checkstyle.plugin.version>3.5.0</maven.checkstyle.plugin.version>

spring-boot-starter-api/spring-boot-starter-api-graphql/autoconfigure/src/main/java/tech/cassandre/trading/bot/configuration/GraphQLAPIKeyAuthenticationFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter;
44

5-
import javax.servlet.http.HttpServletRequest;
5+
import jakarta.servlet.http.HttpServletRequest;
66

77
/**
88
* GraphQL API authentication filter.
Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,51 @@
11
package tech.cassandre.trading.bot.configuration;
22

33
import org.springframework.beans.factory.annotation.Value;
4-
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
4+
import org.springframework.context.annotation.Bean;
55
import org.springframework.context.annotation.Configuration;
66
import org.springframework.core.Ordered;
7+
import org.springframework.core.annotation.Order;
78
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
8-
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
9-
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
9+
import org.springframework.security.web.SecurityFilterChain;
10+
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
1011

1112
import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS;
1213

1314
/**
1415
* GraphQL API security configuration.
1516
*/
17+
@SuppressWarnings("DesignForExtension")
1618
@Configuration
17-
@EnableWebSecurity
18-
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 1)
19-
public class GraphQLAPISecurityConfiguration extends WebSecurityConfigurerAdapter {
19+
public class GraphQLAPISecurityConfiguration {
2020

21-
/** API Key. */
21+
/**
22+
* API Key.
23+
*/
2224
@Value("${cassandre.trading.bot.api.graphql.key:}")
2325
private String key;
2426

25-
@Override
26-
protected final void configure(final HttpSecurity http) throws Exception {
27+
@Bean
28+
@Order(Ordered.HIGHEST_PRECEDENCE + 1)
29+
public SecurityFilterChain securityFilterChain(final HttpSecurity http) throws Exception {
2730
if (key == null || key.isBlank()) {
2831
// if key is not set, no security at all. Everything is accessible.
29-
http.antMatcher("/graphql/**")
30-
.csrf().disable()
31-
.sessionManagement().sessionCreationPolicy(STATELESS)
32-
.and()
33-
.authorizeRequests().anyRequest().permitAll();
32+
http
33+
.securityMatcher("/graphql/**")
34+
.csrf(AbstractHttpConfigurer::disable)
35+
.sessionManagement(session -> session.sessionCreationPolicy(STATELESS))
36+
.authorizeHttpRequests(auth -> auth.anyRequest().permitAll());
3437
} else {
3538
// If a key is set, we ask for key on every request (X-API-Key header).
3639
GraphQLAPIKeyAuthenticationFilter filter = new GraphQLAPIKeyAuthenticationFilter();
3740
filter.setAuthenticationManager(new GraphQLAPIKeyAuthenticationManager(key));
38-
http.antMatcher("/graphql/**")
39-
.csrf().disable()
40-
.sessionManagement().sessionCreationPolicy(STATELESS)
41-
.and()
41+
http
42+
.securityMatcher("/graphql/**")
43+
.csrf(AbstractHttpConfigurer::disable)
44+
.sessionManagement(session -> session.sessionCreationPolicy(STATELESS))
4245
.addFilter(filter)
43-
.authorizeRequests().anyRequest().authenticated();
46+
.authorizeHttpRequests(auth -> auth.anyRequest().authenticated());
4447
}
48+
return http.build();
4549
}
4650

4751
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
tech.cassandre.trading.bot.configuration.GraphQLAPISecurityConfiguration
2+
tech.cassandre.trading.bot.api.graphql.data.AccountDataFetcher
3+
tech.cassandre.trading.bot.api.graphql.data.ConfigurationDataFetcher
4+
tech.cassandre.trading.bot.api.graphql.data.OrderDataFetcher
5+
tech.cassandre.trading.bot.api.graphql.data.PositionDataFetcher
6+
tech.cassandre.trading.bot.api.graphql.data.StrategyDataFetcher
7+
tech.cassandre.trading.bot.api.graphql.data.TradeDataFetcher

spring-boot-starter-test/autoconfigure/src/main/java/tech/cassandre/trading/bot/domain/BacktestingCandle.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import org.hibernate.Hibernate;
99
import tech.cassandre.trading.bot.dto.util.CurrencyPairDTO;
1010

11-
import javax.persistence.Column;
12-
import javax.persistence.EmbeddedId;
13-
import javax.persistence.Entity;
14-
import javax.persistence.Table;
11+
import jakarta.persistence.Column;
12+
import jakarta.persistence.EmbeddedId;
13+
import jakarta.persistence.Entity;
14+
import jakarta.persistence.Table;
1515
import java.math.BigDecimal;
1616
import java.time.ZonedDateTime;
1717
import java.util.Objects;
@@ -72,7 +72,7 @@ public class BacktestingCandle {
7272
private BigDecimal volume;
7373

7474
/** Bucket start time. */
75-
@Column(name = "TIMESTAMP")
75+
@Column(name = "TIMESTAMP", columnDefinition = "TIMESTAMP WITH TIME ZONE")
7676
private ZonedDateTime timestamp;
7777

7878
/**

spring-boot-starter-test/autoconfigure/src/main/java/tech/cassandre/trading/bot/domain/BacktestingCandleId.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import org.hibernate.Hibernate;
88
import tech.cassandre.trading.bot.dto.util.CurrencyPairDTO;
99

10-
import javax.persistence.Column;
11-
import javax.persistence.Embeddable;
10+
import jakarta.persistence.Column;
11+
import jakarta.persistence.Embeddable;
1212
import java.io.Serializable;
1313
import java.util.Objects;
1414

spring-boot-starter/autoconfigure/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@
9696
<version>${opencsv.version}</version>
9797
</dependency>
9898

99+
<dependency>
100+
<groupId>javax.ws.rs</groupId>
101+
<artifactId>javax.ws.rs-api</artifactId>
102+
<version>${javax.ws.rs.version}</version>
103+
</dependency>
104+
99105
<!-- Tests -->
100106
<dependency>
101107
<groupId>org.springframework.boot</groupId>

spring-boot-starter/autoconfigure/src/main/java/tech/cassandre/trading/bot/configuration/ExchangeAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
import tech.cassandre.trading.bot.util.exception.ConfigurationException;
4242
import tech.cassandre.trading.bot.util.parameters.ExchangeParameters;
4343

44-
import javax.annotation.PostConstruct;
44+
import jakarta.annotation.PostConstruct;
4545
import java.io.IOException;
4646
import java.util.Objects;
4747
import java.util.Set;

spring-boot-starter/autoconfigure/src/main/java/tech/cassandre/trading/bot/configuration/ScheduleAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import tech.cassandre.trading.bot.batch.TradeFlux;
1515
import tech.cassandre.trading.bot.util.base.configuration.BaseConfiguration;
1616

17-
import javax.annotation.PreDestroy;
17+
import jakarta.annotation.PreDestroy;
1818
import java.util.concurrent.atomic.AtomicBoolean;
1919

2020
/**

spring-boot-starter/autoconfigure/src/main/java/tech/cassandre/trading/bot/configuration/StrategiesAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import tech.cassandre.trading.bot.util.exception.ConfigurationException;
4444
import tech.cassandre.trading.bot.util.parameters.ExchangeParameters;
4545

46-
import javax.annotation.PostConstruct;
46+
import jakarta.annotation.PostConstruct;
4747
import java.io.IOException;
4848
import java.nio.file.Files;
4949
import java.util.Arrays;

0 commit comments

Comments
 (0)