Skip to content
Merged
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
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,10 @@ jdk_17_maven/em/embedded/rest/familie-ba-sak/target/
/jdk_17_gradle/build/
/jdk_17_gradle/em/embedded/rest/bibliothek/build/
/jdk_17_gradle/em/external/rest/bibliothek/build/
/jdk_17_gradle/.kotlin/
/jdk_17_gradle/tmp/
/jdk_17_gradle/em/embedded/rest/komga/build/
/jdk_17_gradle/em/external/rest/komga/build/
/jdk_17_maven/cs/grpc/signal-registration/target/
/jdk_17_maven/em/embedded/grpc/signal-registration/target/
/jdk_17_maven/em/external/grpc/signal-registration/target/
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ How to setup authentication information, based on the current content of the ini
Auth configuration files can found in the [auth](auth) folder.


### REST: Java/Kotlin (44)
### REST: Java/Kotlin (45)

* **AdoptMe** (not-known license), [jdk_21_maven/cs/rest/adoptme](jdk_21_maven/cs/rest/adoptme), from [https://github.com/daanimelian/Programacion3-TPO](https://github.com/daanimelian/Programacion3-TPO)

Expand Down Expand Up @@ -119,6 +119,8 @@ Auth configuration files can found in the [auth](auth) folder.

* **JoinUs** (not-known license), [jdk_21_maven/cs/rest/joinus](jdk_21_maven/cs/rest/joinus), from [https://github.com/KLAJDI16/joinUs](https://github.com/KLAJDI16/joinUs)

* **Komga** (MIT), [jdk_17_gradle/cs/rest/komga](jdk_17_gradle/cs/rest/komga), from [https://github.com/gotson/komga](https://github.com/gotson/komga)

* **Languagetool** (LGPL), [jdk_8_maven/cs/rest/original/languagetool](jdk_8_maven/cs/rest/original/languagetool), from [https://github.com/languagetool-org/languagetool](https://github.com/languagetool-org/languagetool)

* **LoveMining** (not-known license), [jdk_21_maven/cs/rest/lovemining](jdk_21_maven/cs/rest/lovemining), from [https://github.com/Andryd22/LoveMining](https://github.com/Andryd22/LoveMining)
Expand Down
17 changes: 17 additions & 0 deletions auth/komga-auth.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
auth:
- name: wfd_admin1
fixedHeaders:
- name: Authorization
value: Basic d2ZkX2FkbWluMUB3ZmQuaW52YWxpZDpXZmQtQWRtaW4tUGFzczE=
- name: wfd_admin2
fixedHeaders:
- name: Authorization
value: Basic d2ZkX2FkbWluMkB3ZmQuaW52YWxpZDpXZmQtQWRtaW4tUGFzczI=
- name: wfd_user1
fixedHeaders:
- name: Authorization
value: Basic d2ZkX3VzZXIxQHdmZC5pbnZhbGlkOldmZC1Vc2VyLVBhc3Mx
- name: wfd_user2
fixedHeaders:
- name: Authorization
value: Basic d2ZkX3VzZXIyQHdmZC5pbnZhbGlkOldmZC1Vc2VyLVBhc3My
Binary file not shown.
18 changes: 18 additions & 0 deletions dockerfiles/komga.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM amazoncorretto:17-alpine-jdk

COPY ./dist/komga-sut.jar .
COPY ./dist/jacocoagent.jar .




COPY ./dockerfiles/additional_files/komga/komga-database.sqlite .




ENTRYPOINT \
java \
-javaagent:jacocoagent.jar=output=tcpserver,address=*,port=6300,append=false,dumponexit=false \
-jar komga-sut.jar \
--server.port=8080 --komga.config-dir=/tmp/komga --komga.database.file=/komga-database.sqlite
30 changes: 30 additions & 0 deletions dockerfiles/komga.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
services:
mitmproxy:
image: mitmproxy/mitmproxy:10.2.4
user: "0:0"
environment:
MITM_LOG_DIR: /custom-logs
MITM_LOG_FILE: ${MITM_LOG_FILE:-minlog.csv}
command: >
mitmdump
--mode reverse:http://sut-komga:8080
--listen-host 0.0.0.0
--listen-port 8080
--set keep_host_header=true
-s /addons/minlog.py
volumes:
- ${HOST_LOG_DIR:-./mitm-logs}:/custom-logs
- ./addons:/addons:ro
ports:
- "${HOST_PORT:-8080}:8080"
depends_on:
- sut-komga
sut-komga:
image: webfuzzing/wfd-komga:FINAL
# build:
# dockerfile: ./dockerfiles/komga.dockerfile
# context: ..
environment:
AUTH_PORT: ${AUTH_PORT:-8081}
ports:
- "${JACOCO_PORT:-6300}:6300"
1 change: 1 addition & 0 deletions experiments/bb-exp.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ def __init__(self, name, auth, sleep, schemaformat, classfiles):
Sut("gestaohospital",False,SLEEP,JSON,["jdk_8_maven/cs/rest-gui/gestaohospital/target/classes"]),
Sut("http-patch-spring",False,SLEEP,JSON,["jdk_11_maven/cs/rest/http-patch-spring/target/classes"]),
Sut("joinus",True,SLEEP,JSON,["jdk_21_maven/cs/rest/joinus/target/classes"]),
Sut("komga",True,SLEEP,JSON,["jdk_17_gradle/cs/rest/komga/komga/build/classes"]),
Sut("languagetool",False,SLEEP,JSON,["jdk_8_maven/cs/rest/original/languagetool/languagetool-core/target/classes",
"jdk_8_maven/cs/rest/original/languagetool/languagetool-gui-commons/target/classes",
"jdk_8_maven/cs/rest/original/languagetool/languagetool-language-modules/all/target/classes",
Expand Down
1 change: 1 addition & 0 deletions experiments/wb-exp.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ def __init__(self, name, platform):
Sut("http-patch-spring", JDK_11),
Sut("jasper", JDK_25),
Sut("joinus", JDK_21),
Sut("komga", JDK_17),
Sut("languagetool", JDK_8),
Sut("lovemining", JDK_21),
Sut("market", JDK_11),
Expand Down
1 change: 1 addition & 0 deletions jacoco.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ COPY jdk_8_maven/cs/rest-gui/genome-nexus/web/target/classes ${CLASS_FILES}/jdk
COPY jdk_8_maven/cs/rest-gui/gestaohospital/target/classes ${CLASS_FILES}/jdk_8_maven/cs/rest-gui/gestaohospital/target/classes
COPY jdk_11_maven/cs/rest/http-patch-spring/target/classes ${CLASS_FILES}/jdk_11_maven/cs/rest/http-patch-spring/target/classes
COPY jdk_21_maven/cs/rest/joinus/target/classes ${CLASS_FILES}/jdk_21_maven/cs/rest/joinus/target/classes
COPY jdk_17_gradle/cs/rest/komga/komga/build/classes ${CLASS_FILES}/jdk_17_gradle/cs/rest/komga/komga/build/classes
COPY jdk_8_maven/cs/rest/original/languagetool/languagetool-core/target/classes ${CLASS_FILES}/jdk_8_maven/cs/rest/original/languagetool/languagetool-core/target/classes
COPY jdk_8_maven/cs/rest/original/languagetool/languagetool-gui-commons/target/classes ${CLASS_FILES}/jdk_8_maven/cs/rest/original/languagetool/languagetool-gui-commons/target/classes
COPY jdk_8_maven/cs/rest/original/languagetool/languagetool-language-modules/all/target/classes ${CLASS_FILES}/jdk_8_maven/cs/rest/original/languagetool/languagetool-language-modules/all/target/classes
Expand Down
60 changes: 44 additions & 16 deletions jdk_17_gradle/cs/rest/komga/komga/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,38 @@ import org.jetbrains.kotlin.util.prefixIfNot
import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
kotlin("jvm")
kotlin("plugin.spring")
kotlin("kapt")
// MODIFIED: versions come from komga's own root build, which WFD does not use
run {
val kotlinVersion = "2.4.10"
kotlin("jvm") version kotlinVersion
kotlin("plugin.spring") version kotlinVersion
kotlin("kapt") version kotlinVersion
}
id("org.springframework.boot") version libs.versions.springboot.get()
alias(libs.plugins.gradleGitProperties)
id("nu.studer.jooq") version "10.2.1"
// MODIFIED: 10.2.1 needs Gradle >= 8.6 and a JDK 21 Gradle JVM, this level is 8.5 / JDK 17.
// jOOQ codegen stays 3.19.35, only the "this-escape" SuppressWarnings hint differs
id("nu.studer.jooq") version "9.0"
id("org.flywaydb.flyway") version "13.1.0"
id("com.github.johnrengelman.processes") version "0.5.0"
id("org.springdoc.openapi-gradle-plugin") version "1.9.0"
id("com.google.devtools.ksp") version "2.3.1"
jacoco
}

// MODIFIED: set by komga's own root build, which WFD does not use
group = "org.gotson"
version = "1.26.3"

repositories {
mavenCentral()
}

// MODIFIED: the WFD Docker build mounts only this level, so there is no .git to read
gitProperties {
failOnNoGitDirectory = false
}

val benchmarkSourceSet =
sourceSets.create("benchmark") {
java {
Expand Down Expand Up @@ -181,6 +200,12 @@ tasks {
enabled = true
}

// MODIFIED: WFD expects a single self-contained jar named komga-sut.jar
bootJar {
archiveVersion.set("")
archiveClassifier.set("sut")
}

register<Sync>("webuiCopyDist") {
description = "Copies the WebUI build into resources/public"
group = "web"
Expand Down Expand Up @@ -251,7 +276,8 @@ springBoot {
excludes = setOf("time")
properties {
// but rerun if the gradle.properties file changed
inputs.file("$rootDir/gradle.properties")
// MODIFIED: rootDir is the WFD level here, komga's own root is one folder up
inputs.file("$projectDir/../gradle.properties")
}
}
}
Expand Down Expand Up @@ -376,12 +402,13 @@ tasks.whenTaskAdded {
}
}

tasks.runKtlintFormatOverMainSourceSet {
dependsOn("generateTasksJooq")
}
tasks.runKtlintCheckOverMainSourceSet {
dependsOn("generateTasksJooq")
}
// MODIFIED: ktlint is applied by komga's own root build, which WFD does not use
// tasks.runKtlintFormatOverMainSourceSet {
// dependsOn("generateTasksJooq")
// }
// tasks.runKtlintCheckOverMainSourceSet {
// dependsOn("generateTasksJooq")
// }
tasks.compileKotlin {
dependsOn("generateTasksJooq")
}
Expand All @@ -399,11 +426,12 @@ tasks.jacocoTestReport {
dependsOn(tasks.test)
}

configure<org.jlleitschuh.gradle.ktlint.KtlintExtension> {
filter {
exclude("**/db/migration/**")
}
}
// MODIFIED: ktlint is applied by komga's own root build, which WFD does not use
// configure<org.jlleitschuh.gradle.ktlint.KtlintExtension> {
// filter {
// exclude("**/db/migration/**")
// }
// }

project.afterEvaluate {
tasks.named("forkedSpringBootRun") {
Expand Down
26 changes: 26 additions & 0 deletions jdk_17_gradle/em/embedded/rest/komga/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

repositories {
mavenLocal()
mavenCentral()
}


plugins {
`java-library`
}

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

val EVOMASTER_VERSION = project.ext.get("EVOMASTER_VERSION")

dependencies{
implementation("org.evomaster:evomaster-client-java-controller:$EVOMASTER_VERSION")
implementation("org.evomaster:evomaster-client-java-dependencies:$EVOMASTER_VERSION"){
exclude("com.github.tomakehurst")
}

api(project(":cs:rest:komga"))
}
Loading
Loading