Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: Install Dependencies
run: cd ./next-app && yarn install --frozen-lockfile
- name: Cache node_modules
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: './next-app/node_modules'
key: ${{ runner.os }}-next-${{ hashFiles('./next-app/yarn.lock') }}
Expand All @@ -24,7 +24,7 @@ jobs:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Cache node_modules
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: './next-app/node_modules'
key: ${{ runner.os }}-next-${{ hashFiles('./next-app/yarn.lock') }}
Expand All @@ -38,7 +38,7 @@ jobs:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Cache node_modules
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: './next-app/node_modules'
key: ${{ runner.os }}-next-${{ hashFiles('./next-app/yarn.lock') }}
Expand All @@ -47,7 +47,7 @@ jobs:
- name: Package Jar
run: cd next-app && ln -s out static && zip -0 -r next-app.jar static
- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: next-app.jar
path: next-app/next-app.jar
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
java-version: 17

- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: next-app.jar
path: next-app
Expand All @@ -103,7 +103,7 @@ jobs:
run: ./gradlew bootjar

- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: up.jar
path: spring-app/build/libs/up.jar
Expand All @@ -116,7 +116,7 @@ jobs:
- uses: actions/checkout@v2

- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: up.jar
path: spring-app/build/libs
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,10 @@ gatsby-app/.DS_Store

#up / project files
uploads/*

# locale configuration
*.env
.env
.env.*
docker-compose.yml
docker-compose.yaml
21 changes: 10 additions & 11 deletions spring-app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
id("org.springframework.boot") version "3.0.1"
id("org.springframework.boot") version "3.1.6"
id("io.spring.dependency-management") version "1.1.0"
id("org.asciidoctor.jvm.convert") version "3.2.0"
id("org.flywaydb.flyway") version "7.5.2"
id("org.jlleitschuh.gradle.ktlint") version "12.1.2"

kotlin("jvm") version "2.1.0"
Expand All @@ -27,23 +26,24 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("commons-fileupload:commons-fileupload:1.5")
implementation("io.jsonwebtoken:jjwt-impl:0.11.5")
implementation("io.jsonwebtoken:jjwt-gson:0.11.5")
implementation("org.flywaydb:flyway-core:9.10.2")
implementation("org.flywaydb:flyway-mysql:9.10.2")
implementation("ch.vorburger.mariaDB4j:mariaDB4j:2.4.0")
implementation("org.flywaydb:flyway-core:11.3.1")
implementation("org.flywaydb:flyway-database-postgresql:11.3.1")
implementation("com.ibm.icu:icu4j:72.1")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2")
implementation("com.github.therapi:therapi-runtime-javadoc:0.15.0")
kapt("com.github.therapi:therapi-runtime-javadoc-scribe:0.15.0")
runtimeOnly("com.h2database:h2:1.4.200")
runtimeOnly("mysql:mysql-connector-java")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
runtimeOnly(files("../next-app/next-app.jar"))

implementation("org.ktorm:ktorm-support-postgresql:4.1.1")
implementation("org.ktorm:ktorm-core:4.1.1")
runtimeOnly("org.postgresql:postgresql:42.7.5")

testImplementation("org.postgresql:postgresql:42.7.5")
testImplementation("org.testcontainers:postgresql:1.20.4")
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
Expand All @@ -67,7 +67,6 @@ ext {
ktlint {
version.set("1.4.1")
ignoreFailures.set(true)
disabledRules.set(setOf("no-wildcard-imports"))
}

tasks {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package pl.starchasers.up.configuration

import org.ktorm.database.Database
import org.ktorm.logging.Slf4jLoggerAdapter
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import javax.sql.DataSource
import kotlin.reflect.jvm.jvmName

@Configuration
class DatabaseConfiguration(
private val dataSource: DataSource
) {

@Bean
fun database(): Database = Database.connect(
dataSource = dataSource,
alwaysQuoteIdentifiers = true,
logger = Slf4jLoggerAdapter(this::class.jvmName)
)

}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
package pl.starchasers.up.configuration

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

@Configuration
class ObjectMapperConfiguration {
@Bean
fun getObjectMapper(): ObjectMapper = ObjectMapper().findAndRegisterModules()
fun getObjectMapper(): ObjectMapper =
jacksonObjectMapper()
.registerModule(JavaTimeModule())
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,13 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
import org.springframework.security.config.http.SessionCreationPolicy
import org.springframework.security.web.SecurityFilterChain
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
import org.springframework.web.cors.CorsConfiguration
import org.springframework.web.cors.CorsConfigurationSource
import org.springframework.web.cors.UrlBasedCorsConfigurationSource
import pl.starchasers.up.security.JwtTokenFilter
import pl.starchasers.up.service.JwtTokenService

@Configuration
@EnableWebSecurity
class WebSecurityConfiguration(
private val jwtTokenService: JwtTokenService
) {
class WebSecurityConfiguration() {

private val logger = LoggerFactory.getLogger(this::class.java)

Expand All @@ -30,21 +25,15 @@ class WebSecurityConfiguration(
fun filterChain(http: HttpSecurity): SecurityFilterChain = http
.csrf { it.disable() }
.sessionManagement { it.sessionCreationPolicy(SessionCreationPolicy.STATELESS) }
.addFilterBefore(JwtTokenFilter(jwtTokenService), UsernamePasswordAuthenticationFilter::class.java)
.also {
if (devCors) {
logger.info("Development environment set. Enabling CORS for all origins.")
}
it.cors()
}
.cors {}
.build()

@Bean
fun corsConfigurationSource(): CorsConfigurationSource {
val configuration = CorsConfiguration()
configuration.allowedOrigins = listOf("*")
configuration.allowedMethods = listOf("GET", "POST", "PUT", "DELETE", "PATCH")
// configuration.allowCredentials = true
configuration.allowCredentials = false
configuration.applyPermitDefaultValues()
val source = UrlBasedCorsConfigurationSource()
source.registerCorsConfiguration("/**", configuration)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,24 @@ import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
import pl.starchasers.up.data.dto.configuration.UserConfigurationDTO
import pl.starchasers.up.service.ConfigurationService
import pl.starchasers.up.service.UserService
import java.security.Principal

@RestController
class ConfigurationController(
private val configurationService: ConfigurationService,
private val userService: UserService
private val configurationService: ConfigurationService
) {

/**
* Returns configuration for anonymous or logged in user, if Authorization header is provided
*/
@GetMapping("/api/configuration")
fun getConfiguration(principal: Principal?): UserConfigurationDTO {
val user = userService.fromPrincipal(principal)

fun getConfiguration(): UserConfigurationDTO {
return UserConfigurationDTO(
user?.maxTemporaryFileSize?.value ?: configurationService.getAnonymousMaxFileSize().value,
user?.maxFileLifetime?.value ?: configurationService.getAnonymousMaxFileLifetime().value,
user?.defaultFileLifetime?.value ?: configurationService.getAnonymousDefaultFileLifetime().value,
if (user != null) user.maxFileLifetime.value == 0L else configurationService.getAnonymousDefaultFileLifetime().value == 0L,
user?.maxPermanentFileSize?.value ?: if (configurationService.getAnonymousMaxFileLifetime().value == 0L) {
configurationService.getAnonymousMaxFileSize().value
configurationService.getAnonymousMaxFileSize(),
configurationService.getAnonymousMaxFileLifetime(),
configurationService.getAnonymousDefaultFileLifetime(),
configurationService.getAnonymousDefaultFileLifetime() == 0L,
if (configurationService.getAnonymousMaxFileLifetime() == 0L) {
configurationService.getAnonymousMaxFileSize()
} else 0
)
}
Expand Down
Loading
Loading