1
0
mirror of https://github.com/Stirling-Tools/Stirling-PDF.git synced 2024-11-13 11:00:13 +01:00

Updating build.gradle libraries (#1465)

This commit is contained in:
Ludy 2024-06-15 12:47:16 +02:00 committed by GitHub
parent dc2f891632
commit f07ba9192b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 119 additions and 105 deletions

View File

@ -1,25 +1,29 @@
plugins { plugins {
id 'java' id "java"
id 'org.springframework.boot' version '3.2.4' id "org.springframework.boot" version "3.3.0"
id 'io.spring.dependency-management' version '1.1.3' id "io.spring.dependency-management" version "1.1.5"
id 'org.springdoc.openapi-gradle-plugin' version '1.8.0' id "org.springdoc.openapi-gradle-plugin" version "1.8.0"
id "io.swagger.swaggerhub" version "1.3.2" id "io.swagger.swaggerhub" version "1.3.2"
id 'edu.sc.seis.launch4j' version '3.0.5' id "edu.sc.seis.launch4j" version "3.0.5"
id 'com.diffplug.spotless' version '6.25.0' id "com.diffplug.spotless" version "6.25.0"
id 'com.github.jk1.dependency-license-report' version '2.6' id "com.github.jk1.dependency-license-report" version "2.8"
} }
import com.github.jk1.license.render.* import com.github.jk1.license.render.*
group = 'stirling.software' ext {
version = '0.26.1' springBootVersion = "3.3.0"
}
//17 is lowest but we support and recommend 21 group = "stirling.software"
sourceCompatibility = '17' version = "0.26.1"
// 17 is lowest but we support and recommend 21
sourceCompatibility = "17"
repositories { repositories {
mavenCentral() mavenCentral()
maven { url 'https://jitpack.io' } maven { url "https://jitpack.io" }
} }
licenseReport { licenseReport {
@ -29,15 +33,15 @@ licenseReport {
sourceSets { sourceSets {
main { main {
java { java {
if (System.getenv('DOCKER_ENABLE_SECURITY') == 'false') { if (System.getenv("DOCKER_ENABLE_SECURITY") == "false") {
exclude 'stirling/software/SPDF/config/security/**' exclude "stirling/software/SPDF/config/security/**"
exclude 'stirling/software/SPDF/controller/api/UserController.java' exclude "stirling/software/SPDF/controller/api/UserController.java"
exclude 'stirling/software/SPDF/controller/web/AccountWebController.java' exclude "stirling/software/SPDF/controller/web/AccountWebController.java"
exclude 'stirling/software/SPDF/model/ApiKeyAuthenticationToken.java' exclude "stirling/software/SPDF/model/ApiKeyAuthenticationToken.java"
exclude 'stirling/software/SPDF/model/Authority.java' exclude "stirling/software/SPDF/model/Authority.java"
exclude 'stirling/software/SPDF/model/PersistentLogin.java' exclude "stirling/software/SPDF/model/PersistentLogin.java"
exclude 'stirling/software/SPDF/model/User.java' exclude "stirling/software/SPDF/model/User.java"
exclude 'stirling/software/SPDF/repository/**' exclude "stirling/software/SPDF/repository/**"
} }
} }
} }
@ -50,34 +54,34 @@ openApi {
} }
launch4j { launch4j {
icon = "${projectDir}/src/main/resources/static/favicon.ico" icon = "${projectDir}/src/main/resources/static/favicon.ico"
outfile="Stirling-PDF.exe" outfile="Stirling-PDF.exe"
headerType="console" headerType="console"
jarTask = tasks.bootJar jarTask = tasks.bootJar
errTitle="Encountered error, Do you have Java 21?" errTitle="Encountered error, Do you have Java 21?"
downloadUrl="https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.exe" downloadUrl="https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.exe"
variables=["BROWSER_OPEN=true", "ENDPOINTS_GROUPS_TO_REMOVE=CLI"] variables=["BROWSER_OPEN=true", "ENDPOINTS_GROUPS_TO_REMOVE=CLI"]
jreMinVersion="17" jreMinVersion="17"
mutexName="Stirling-PDF" mutexName="Stirling-PDF"
windowTitle="Stirling-PDF" windowTitle="Stirling-PDF"
messagesStartupError="An error occurred while starting Stirling-PDF" messagesStartupError="An error occurred while starting Stirling-PDF"
//messagesJreNotFoundError="This application requires a Java Runtime Environment, Please download Java 17." // messagesJreNotFoundError="This application requires a Java Runtime Environment, Please download Java 17."
messagesJreVersionError="You are running the wrong version of Java, Please download Java 21." messagesJreVersionError="You are running the wrong version of Java, Please download Java 21."
messagesLauncherError="Java is corrupted. Please uninstall and then install Java 21." messagesLauncherError="Java is corrupted. Please uninstall and then install Java 21."
messagesInstanceAlreadyExists="Stirling-PDF is already running." messagesInstanceAlreadyExists="Stirling-PDF is already running."
} }
spotless { spotless {
java { java {
target project.fileTree('src/main/java') target project.fileTree('src/main/java')
googleJavaFormat('1.22.0').aosp().reorderImports(false) googleJavaFormat("1.22.0").aosp().reorderImports(false)
importOrder('java', 'javax', 'org', 'com', 'net', 'io') importOrder("java", "javax", "org", "com", "net", "io")
toggleOffOn() toggleOffOn()
trimTrailingWhitespace() trimTrailingWhitespace()
indentWithSpaces() indentWithSpaces()
@ -85,128 +89,136 @@ spotless {
} }
} }
tasks.wrapper {
gradleVersion = "8.7"
}
dependencies { dependencies {
//security updates //security updates
implementation 'ch.qos.logback:logback-classic:1.5.3' implementation "ch.qos.logback:logback-classic:1.5.6"
implementation 'ch.qos.logback:logback-core:1.5.3' implementation "ch.qos.logback:logback-core:1.5.6"
implementation 'org.springframework:spring-webmvc:6.1.5' implementation "org.springframework:spring-webmvc:6.1.8"
implementation("io.github.pixee:java-security-toolkit:1.1.3") implementation("io.github.pixee:java-security-toolkit:1.1.3")
implementation 'org.yaml:snakeyaml:2.2' // implementation "org.yaml:snakeyaml:2.2"
implementation 'com.github.Carleslc.Simple-YAML:Simple-Yaml:1.8.4' implementation 'com.github.Carleslc.Simple-YAML:Simple-Yaml:1.8.4'
// Exclude Tomcat and include Jetty // Exclude Tomcat and include Jetty
implementation('org.springframework.boot:spring-boot-starter-web:3.2.4') { implementation("org.springframework.boot:spring-boot-starter-web:$springBootVersion") {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
} }
implementation 'org.springframework.boot:spring-boot-starter-jetty:3.2.4' implementation "org.springframework.boot:spring-boot-starter-jetty:$springBootVersion"
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:3.2.4'
if (System.getenv('DOCKER_ENABLE_SECURITY') != 'false') { implementation "org.springframework.boot:spring-boot-starter-thymeleaf:$springBootVersion"
implementation 'org.springframework.boot:spring-boot-starter-security:3.2.4'
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.1.2.RELEASE' if (System.getenv("DOCKER_ENABLE_SECURITY") != "false") {
implementation "org.springframework.boot:spring-boot-starter-data-jpa:3.2.4" implementation "org.springframework.boot:spring-boot-starter-security:$springBootVersion"
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client:3.2.4' implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.1.2.RELEASE"
implementation "org.springframework.boot:spring-boot-starter-data-jpa:$springBootVersion"
implementation "org.springframework.boot:spring-boot-starter-oauth2-client:$springBootVersion"
//2.2.x requires rebuild of DB file.. need migration path //2.2.x requires rebuild of DB file.. need migration path
implementation "com.h2database:h2:2.1.214" implementation "com.h2database:h2:2.1.214"
} }
testImplementation 'org.springframework.boot:spring-boot-starter-test:3.2.4' testImplementation "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
// Batik // Batik
implementation 'org.apache.xmlgraphics:batik-all:1.17' implementation "org.apache.xmlgraphics:batik-all:1.17"
// TwelveMonkeys // TwelveMonkeys
implementation 'com.twelvemonkeys.imageio:imageio-batik:3.10.1' implementation "com.twelvemonkeys.imageio:imageio-batik:3.10.1"
implementation 'com.twelvemonkeys.imageio:imageio-bmp:3.10.1' implementation "com.twelvemonkeys.imageio:imageio-bmp:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-hdr:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-hdr:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-icns:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-icns:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-iff:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-iff:3.10.1"
implementation 'com.twelvemonkeys.imageio:imageio-jpeg:3.10.1' implementation "com.twelvemonkeys.imageio:imageio-jpeg:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-pcx:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-pcx:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-pict:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-pict:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-pnm:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-pnm:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-psd:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-psd:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-sgi:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-sgi:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-tga:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-tga:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-thumbsdb:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-thumbsdb:3.10.1"
implementation 'com.twelvemonkeys.imageio:imageio-tiff:3.10.1' implementation "com.twelvemonkeys.imageio:imageio-tiff:3.10.1"
implementation 'com.twelvemonkeys.imageio:imageio-webp:3.10.1' implementation "com.twelvemonkeys.imageio:imageio-webp:3.10.1"
// implementation 'com.twelvemonkeys.imageio:imageio-xwd:3.10.1' // implementation "com.twelvemonkeys.imageio:imageio-xwd:3.10.1"
implementation 'commons-io:commons-io:2.16.1' implementation "commons-io:commons-io:2.16.1"
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0"
//general PDF //general PDF
// https://mvnrepository.com/artifact/com.opencsv/opencsv // https://mvnrepository.com/artifact/com.opencsv/opencsv
implementation ('com.opencsv:opencsv:5.9') { implementation ("com.opencsv:opencsv:5.9") {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: "commons-logging", module: "commons-logging"
} }
implementation ('org.apache.pdfbox:pdfbox:3.0.2'){ implementation ("org.apache.pdfbox:pdfbox:3.0.2") {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: "commons-logging", module: "commons-logging"
} }
implementation ('org.apache.pdfbox:xmpbox:3.0.2'){ implementation ("org.apache.pdfbox:xmpbox:3.0.2") {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: "commons-logging", module: "commons-logging"
} }
implementation "com.github.Carleslc.Simple-YAML:Simple-Yaml:1.8.4"
implementation 'org.bouncycastle:bcprov-jdk18on:1.77' implementation "org.bouncycastle:bcprov-jdk18on:1.78.1"
implementation 'org.bouncycastle:bcpkix-jdk18on:1.77' implementation "org.bouncycastle:bcpkix-jdk18on:1.78.1"
implementation 'org.springframework.boot:spring-boot-starter-actuator:3.2.4' implementation "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
implementation 'io.micrometer:micrometer-core:1.12.4' implementation "io.micrometer:micrometer-core:1.13.0"
implementation group: 'com.google.zxing', name: 'core', version: '3.5.3' implementation group: "com.google.zxing", name: "core", version: "3.5.3"
// https://mvnrepository.com/artifact/org.commonmark/commonmark // https://mvnrepository.com/artifact/org.commonmark/commonmark
implementation 'org.commonmark:commonmark:0.22.0' implementation "org.commonmark:commonmark:0.22.0"
implementation 'org.commonmark:commonmark-ext-gfm-tables:0.22.0' implementation "org.commonmark:commonmark-ext-gfm-tables:0.22.0"
// https://mvnrepository.com/artifact/com.github.vladimir-bukhtoyarov/bucket4j-core // https://mvnrepository.com/artifact/com.bucket4j/bucket4j_jdk17
implementation 'com.github.vladimir-bukhtoyarov:bucket4j-core:7.6.0' implementation "com.bucket4j:bucket4j_jdk17-core:8.12.1"
implementation 'com.fathzer:javaluator:3.0.3' implementation "com.fathzer:javaluator:3.0.4"
developmentOnly("org.springframework.boot:spring-boot-devtools:3.2.4") developmentOnly("org.springframework.boot:spring-boot-devtools:$springBootVersion")
compileOnly 'org.projectlombok:lombok:1.18.32' compileOnly "org.projectlombok:lombok:1.18.32"
annotationProcessor 'org.projectlombok:lombok:1.18.32' annotationProcessor "org.projectlombok:lombok:1.18.32"
testImplementation 'org.mockito:mockito-inline:3.12.4'
} }
tasks.withType(JavaCompile).configureEach { tasks.withType(JavaCompile).configureEach {
dependsOn 'spotlessApply' options.encoding = "UTF-8"
dependsOn "spotlessApply"
} }
compileJava { compileJava {
options.compilerArgs << '-parameters' options.compilerArgs << "-parameters"
} }
task writeVersion { task writeVersion {
def propsFile = file('src/main/resources/version.properties') def propsFile = file("src/main/resources/version.properties")
def props = new Properties() def props = new Properties()
props.setProperty('version', version) props.setProperty("version", version)
props.store(propsFile.newWriter(), null) props.store(propsFile.newWriter(), null)
} }
swaggerhubUpload { swaggerhubUpload {
//dependsOn generateOpenApiDocs // Depends on your task generating Swagger docs //dependsOn generateOpenApiDocs // Depends on your task generating Swagger docs
api 'Stirling-PDF' // The name of your API on SwaggerHub api "Stirling-PDF" // The name of your API on SwaggerHub
owner 'Frooodle' // Your SwaggerHub username (or organization name) owner "Frooodle" // Your SwaggerHub username (or organization name)
version project.version // The version of your API version project.version // The version of your API
inputFile './SwaggerDoc.json' // The path to your Swagger docs inputFile "./SwaggerDoc.json" // The path to your Swagger docs
token "${System.getenv('SWAGGERHUB_API_KEY')}" // Your SwaggerHub API key, passed as an environment variable token "${System.getenv("SWAGGERHUB_API_KEY")}" // Your SwaggerHub API key, passed as an environment variable
oas '3.0.0' // The version of the OpenAPI Specification you're using oas "3.0.0" // The version of the OpenAPI Specification you"re using
} }
jar { jar {
enabled = false enabled = false
manifest { manifest {
attributes 'Implementation-Title': 'Stirling-PDF', attributes "Implementation-Title": "Stirling-PDF",
'Implementation-Version': project.version "Implementation-Version": project.version
} }
} }
tasks.named('test') { tasks.named("test") {
useJUnitPlatform() useJUnitPlatform()
} }

View File

@ -19,7 +19,6 @@ import org.springframework.web.filter.OncePerRequestFilter;
import io.github.bucket4j.Bandwidth; import io.github.bucket4j.Bandwidth;
import io.github.bucket4j.Bucket; import io.github.bucket4j.Bucket;
import io.github.bucket4j.ConsumptionProbe; import io.github.bucket4j.ConsumptionProbe;
import io.github.bucket4j.Refill;
import io.github.pixee.security.Newlines; import io.github.pixee.security.Newlines;
import jakarta.servlet.FilterChain; import jakarta.servlet.FilterChain;
@ -142,7 +141,10 @@ public class UserBasedRateLimitingFilter extends OncePerRequestFilter {
private Bucket createUserBucket(int limitPerDay) { private Bucket createUserBucket(int limitPerDay) {
Bandwidth limit = Bandwidth limit =
Bandwidth.classic(limitPerDay, Refill.intervally(limitPerDay, Duration.ofDays(1))); Bandwidth.builder()
.capacity(limitPerDay)
.refillIntervally(limitPerDay, Duration.ofDays(1))
.build();
return Bucket.builder().addLimit(limit).build(); return Bucket.builder().addLimit(limit).build();
} }
} }