Skip to content

Commit 4e80ddd

Browse files
authored
Merge pull request #28 from Kilemonn/upgrade-depdencies-reduce-vulnerabilities
Upgrade depdencies reduce vulnerabilities
2 parents 36254ae + dc33938 commit 4e80ddd

11 files changed

Lines changed: 65 additions & 46 deletions

File tree

build.gradle.kts

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,61 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("org.springframework.boot") version "2.7.5"
5-
id("io.spring.dependency-management") version "1.0.14.RELEASE"
6-
kotlin("jvm") version "1.8.20"
7-
kotlin("plugin.spring") version "1.8.20"
4+
id("org.springframework.boot") version "3.2.0"
5+
id("io.spring.dependency-management") version "1.1.4"
6+
kotlin("jvm") version "1.9.21"
7+
kotlin("plugin.spring") version "1.9.21"
88
jacoco
99
}
1010

1111
group = "au.kilemon"
1212
// Make sure version matches version defined in MessageQueueApplication
13-
version = "0.3.0"
13+
version = "0.3.1"
1414
java.sourceCompatibility = JavaVersion.VERSION_17
1515

1616
repositories {
1717
mavenCentral()
1818
}
1919

2020
dependencies {
21-
implementation("org.springframework.boot:spring-boot-starter-web:3.0.6")
22-
implementation("org.springframework.boot:spring-boot-starter-validation:2.7.5")
23-
21+
implementation("org.springframework.boot:spring-boot-starter-web:3.2.0")
22+
implementation("org.springframework.boot:spring-boot-starter-validation:3.2.0")
23+
implementation("org.springframework.boot:spring-boot-starter-data-redis:3.2.0")
2424
// JPA dependency
25-
implementation("org.springframework.boot:spring-boot-starter-data-jpa:2.7.5")
26-
27-
// https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-ui
28-
implementation("org.springdoc:springdoc-openapi-ui:1.6.11")
25+
implementation("org.springframework.boot:spring-boot-starter-data-jpa:3.2.0")
26+
// No SQL drivers
27+
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb
28+
implementation("org.springframework.boot:spring-boot-starter-data-mongodb:3.2.0")
2929

30-
implementation("org.springframework.boot:spring-boot-starter-data-redis:3.0.6")
30+
// https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui
31+
implementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.3.0")
32+
// https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui
33+
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0")
3134

32-
implementation("com.google.code.gson:gson:2.10")
35+
implementation("com.google.code.gson:gson:2.10.1")
3336

34-
compileOnly("org.projectlombok:lombok:1.18.24")
37+
compileOnly("org.projectlombok:lombok:1.18.30")
3538

3639
// https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-reflect
37-
runtimeOnly("org.jetbrains.kotlin:kotlin-reflect:1.8.20")
40+
runtimeOnly("org.jetbrains.kotlin:kotlin-reflect:1.9.21")
3841

3942
// Database drivers
4043
// https://mvnrepository.com/artifact/com.mysql/mysql-connector-j
41-
implementation("com.mysql:mysql-connector-j:8.0.31")
44+
implementation("com.mysql:mysql-connector-j:8.2.0")
4245
// https://mvnrepository.com/artifact/org.postgresql/postgresql
43-
implementation("org.postgresql:postgresql:42.5.1")
44-
45-
// No SQL drivers
46-
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb
47-
implementation("org.springframework.boot:spring-boot-starter-data-mongodb:3.1.3")
46+
implementation("org.postgresql:postgresql:42.7.1")
4847

4948
// JWT token
5049
// https://mvnrepository.com/artifact/com.auth0/java-jwt
5150
implementation("com.auth0:java-jwt:4.4.0")
5251

5352
// Test dependencies
54-
testImplementation("org.springframework.boot:spring-boot-starter-test:3.0.6")
53+
testImplementation("org.springframework.boot:spring-boot-starter-test:3.2.0")
5554
// Required to mock MultiQueue objects since they apparently override a final 'remove(Object)' method.
56-
testImplementation("org.mockito:mockito-inline:5.1.0")
57-
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.0")
58-
testImplementation("org.testcontainers:testcontainers:1.19.2")
59-
testImplementation("org.testcontainers:junit-jupiter:1.17.5")
55+
testImplementation("org.mockito:mockito-inline:5.2.0")
56+
testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.1")
57+
testImplementation("org.testcontainers:testcontainers:1.19.3")
58+
testImplementation("org.testcontainers:junit-jupiter:1.19.3")
6059
testImplementation(kotlin("test"))
6160
}
6261

src/main/kotlin/au/kilemon/messagequeue/MessageQueueApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ open class MessageQueueApplication
1717
/**
1818
* Application version number, make sure this matches what is defined in `build.gradle.kts`.
1919
*/
20-
const val VERSION: String = "0.3.0"
20+
const val VERSION: String = "0.3.1"
2121
}
2222
}
2323

src/main/kotlin/au/kilemon/messagequeue/authentication/AuthenticationMatrix.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package au.kilemon.messagequeue.authentication
22

33
import com.fasterxml.jackson.annotation.JsonIgnore
4+
import jakarta.persistence.Column
5+
import jakarta.persistence.Entity
6+
import jakarta.persistence.GeneratedValue
7+
import jakarta.persistence.GenerationType
8+
import jakarta.persistence.Id
9+
import jakarta.persistence.Table
410
import java.io.Serializable
5-
import javax.persistence.*
611

712
/**
813
* An object that holds subqueue authentication information.

src/main/kotlin/au/kilemon/messagequeue/filter/CorrelationIdFilter.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package au.kilemon.messagequeue.filter
22

33
import au.kilemon.messagequeue.logging.HasLogger
4+
import jakarta.servlet.FilterChain
5+
import jakarta.servlet.http.HttpServletRequest
6+
import jakarta.servlet.http.HttpServletResponse
47
import org.slf4j.Logger
58
import org.slf4j.MDC
69
import org.springframework.core.annotation.Order
710
import org.springframework.stereotype.Component
811
import org.springframework.web.filter.OncePerRequestFilter
912
import java.util.*
10-
import javax.servlet.FilterChain
11-
import javax.servlet.http.HttpServletRequest
12-
import javax.servlet.http.HttpServletResponse
13+
1314

1415
/**
1516
* A request filter that either takes the incoming provided [CORRELATION_ID_HEADER] and sets it into the [MDC] OR

src/main/kotlin/au/kilemon/messagequeue/filter/JwtAuthenticationFilter.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import au.kilemon.messagequeue.authentication.token.JwtTokenProvider
88
import au.kilemon.messagequeue.rest.controller.AuthController
99
import au.kilemon.messagequeue.rest.controller.MessageQueueController
1010
import au.kilemon.messagequeue.rest.controller.SettingsController
11+
import jakarta.servlet.FilterChain
12+
import jakarta.servlet.http.HttpServletRequest
13+
import jakarta.servlet.http.HttpServletResponse
1114
import org.slf4j.Logger
1215
import org.slf4j.MDC
1316
import org.springframework.beans.factory.annotation.Autowired
@@ -18,9 +21,6 @@ import org.springframework.stereotype.Component
1821
import org.springframework.web.filter.OncePerRequestFilter
1922
import org.springframework.web.servlet.HandlerExceptionResolver
2023
import java.util.*
21-
import javax.servlet.FilterChain
22-
import javax.servlet.http.HttpServletRequest
23-
import javax.servlet.http.HttpServletResponse
2424

2525
/**
2626
* A filter responsible for verifying provided Jwt tokens when sub-queues are being accessed.
@@ -38,6 +38,9 @@ class JwtAuthenticationFilter: OncePerRequestFilter(), HasLogger
3838

3939
const val SUB_QUEUE = "Sub-Queue"
4040

41+
const val SWAGGER_DOC_ENDPOINT = "/swagger-ui"
42+
const val SWAGGER_DOC_CONFIG_ENDPOINT = "/api-docs"
43+
4144
/**
4245
* Gets the stored [SUB_QUEUE] from the [MDC].
4346
* This can be null if no valid token is provided.
@@ -134,7 +137,9 @@ class JwtAuthenticationFilter: OncePerRequestFilter(), HasLogger
134137
Pair(HttpMethod.GET, "${MessageQueueController.MESSAGE_QUEUE_BASE_PATH}${MessageQueueController.ENDPOINT_OWNERS}"),
135138
Pair(HttpMethod.GET, AuthController.AUTH_PATH),
136139
Pair(HttpMethod.POST, AuthController.AUTH_PATH),
137-
Pair(HttpMethod.GET, SettingsController.SETTINGS_PATH)
140+
Pair(HttpMethod.GET, SettingsController.SETTINGS_PATH),
141+
Pair(HttpMethod.GET, SWAGGER_DOC_ENDPOINT),
142+
Pair(HttpMethod.GET, SWAGGER_DOC_CONFIG_ENDPOINT)
138143
)
139144

140145
return noTokenCheckEndpoints

src/main/kotlin/au/kilemon/messagequeue/message/QueueMessage.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@ package au.kilemon.messagequeue.message
22

33
import com.fasterxml.jackson.annotation.JsonIgnore
44
import io.swagger.v3.oas.annotations.media.Schema
5+
import jakarta.persistence.Column
6+
import jakarta.persistence.Entity
7+
import jakarta.persistence.GeneratedValue
8+
import jakarta.persistence.GenerationType
9+
import jakarta.persistence.Id
10+
import jakarta.persistence.Lob
11+
import jakarta.persistence.Table
512
import org.springframework.util.SerializationUtils
613
import java.io.Serializable
714
import java.util.*
8-
import javax.persistence.*
915

1016
/**
1117
* A base [QueueMessage] object which will wrap any object that is placed into the `MultiQueue`.
@@ -36,7 +42,7 @@ class QueueMessage: Serializable
3642
var assignedTo: String? = null
3743

3844
@Schema(description = "The message payload, this can be any type of complex or simple object that you wish.")
39-
@Transient
45+
@jakarta.persistence.Transient
4046
var payload: Any? = null
4147
set(value)
4248
{
@@ -56,7 +62,7 @@ class QueueMessage: Serializable
5662

5763
@JsonIgnore
5864
@Lob
59-
@Column
65+
@Column(length = 50000)
6066
var payloadBytes: ByteArray? = SerializationUtils.serialize(payload)
6167

6268
/**

src/main/kotlin/au/kilemon/messagequeue/rest/controller/MessageQueueController.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import io.swagger.v3.oas.annotations.media.Content
1616
import io.swagger.v3.oas.annotations.responses.ApiResponse
1717
import io.swagger.v3.oas.annotations.responses.ApiResponses
1818
import io.swagger.v3.oas.annotations.tags.Tag
19+
import jakarta.validation.Valid
1920
import org.slf4j.Logger
2021
import org.springframework.beans.factory.annotation.Autowired
2122
import org.springframework.http.HttpStatus
@@ -25,7 +26,6 @@ import org.springframework.web.bind.annotation.*
2526
import org.springframework.web.server.ResponseStatusException
2627
import java.util.*
2728
import java.util.stream.Collectors
28-
import javax.validation.Valid
2929
import kotlin.collections.HashSet
3030

3131
/**

src/main/kotlin/au/kilemon/messagequeue/rest/response/RestResponseExceptionHandler.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class RestResponseExceptionHandler: ResponseEntityExceptionHandler()
2121
@ExceptionHandler(ResponseStatusException::class)
2222
fun handleResponseStatusException(ex: ResponseStatusException): ResponseEntity<ErrorResponse>
2323
{
24-
return ResponseEntity<ErrorResponse>(ErrorResponse(ex.reason), ex.status)
24+
return ResponseEntity<ErrorResponse>(ErrorResponse(ex.reason), ex.statusCode)
2525
}
2626

2727
@ExceptionHandler(MultiQueueAuthorisationException::class)

src/main/resources/logback.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<configuration>
33
<!-- Properties list for use below -->
44
<property name="LOGS" value="./logs"/>
5-
<property name="PATTERN" value="%d %p [%X{correlationId}] %C{1.} [%t] %m%n"/>
6-
<property name="ARCHIVED_FILE_SUFFIX" value="-%d{yyyy-MM-dd}.%i"/>
5+
<property name="PATTERN" value="%d %p [%t] [%X{correlationId}] %C{1} - %m%n"/>
6+
<property name="ARCHIVED_FILE_SUFFIX" value="%d{yyyy-MM-dd}.%i"/>
77

88
<!-- Console appender formatting -->
99
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
@@ -19,7 +19,7 @@
1919
<Pattern>${PATTERN}</Pattern>
2020
</encoder>
2121
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
22-
<fileNamePattern>${LOGS}/error${ARCHIVED_FILE_SUFFIX}.log</fileNamePattern>
22+
<fileNamePattern>${LOGS}/error-${ARCHIVED_FILE_SUFFIX}.log</fileNamePattern>
2323
<maxFileSize>10MB</maxFileSize>
2424
</rollingPolicy>
2525
</appender>
@@ -31,7 +31,7 @@
3131
<Pattern>${PATTERN}</Pattern>
3232
</encoder>
3333
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
34-
<fileNamePattern>${LOGS}/message-queue${ARCHIVED_FILE_SUFFIX}.log</fileNamePattern>
34+
<fileNamePattern>${LOGS}/message-queue-${ARCHIVED_FILE_SUFFIX}.log</fileNamePattern>
3535
<maxFileSize>10MB</maxFileSize>
3636
</rollingPolicy>
3737
</appender>

src/test/kotlin/au/kilemon/messagequeue/filter/JwtAuthenticationFilterTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import au.kilemon.messagequeue.configuration.QueueConfiguration
77
import au.kilemon.messagequeue.logging.LoggingConfiguration
88
import au.kilemon.messagequeue.queue.MultiQueueTest
99
import au.kilemon.messagequeue.rest.controller.MessageQueueController
10+
import jakarta.servlet.http.HttpServletRequest
1011
import org.junit.jupiter.api.AfterEach
1112
import org.junit.jupiter.api.Assertions
1213
import org.junit.jupiter.api.BeforeEach
@@ -24,7 +25,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension
2425
import org.springframework.web.servlet.HandlerExceptionResolver
2526
import org.springframework.web.servlet.handler.HandlerExceptionResolverComposite
2627
import java.util.*
27-
import javax.servlet.http.HttpServletRequest
2828

2929
/**
3030
* A test class for the [JwtAuthenticationFilter].

0 commit comments

Comments
 (0)