Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
98b40a1
Initial commit med all kod (#16)
Kathify Feb 10, 2026
c1b5f70
build: configure pom.xml with needed plugin/tools. (#19)
eeebbaandersson Feb 10, 2026
bf4d977
Initial commit för tcp-server (#17)
Kathify Feb 10, 2026
148411e
Issue #12 (#21)
Xeutos Feb 10, 2026
9ac7b57
Feature/docker image builder issue#11 (#25)
Xeutos Feb 11, 2026
875d1ef
Feature/http parse headers (#18)
FeFFe1996 Feb 11, 2026
9289c7d
Feature/http response builder (#24)
JohanHiths Feb 11, 2026
6bdb1ef
Feature/http parse request line (#20)
FeFFe1996 Feb 11, 2026
781e34a
Add Bucket4j dependency in pom file (#40)
gvaguirres Feb 11, 2026
511b5ee
Add support for serving static files (#42)
codebyNorthsteep Feb 12, 2026
aaeba6d
Updates pom.xml, with jackson-dependencies, for config file (#48)
fredrikmohlen Feb 12, 2026
524f33c
* Move HTTP handling to a dedicated ConnectionHandler (#50)
donne41 Feb 12, 2026
b9600f6
ska vara klart nu har glömt att commit jobbet inser jag dock
Boppler12 Feb 17, 2026
07e47bf
har lagt till i line 20-25 samt line 29
Boppler12 Feb 17, 2026
8cc69d8
Feature/13 implement config file (#22)
MartinStenhagen Feb 17, 2026
8e0ab50
tester för FileCacheTest
Boppler12 Feb 17, 2026
c0e3de6
Enhancement/404 page not found (#53)
codebyNorthsteep Feb 17, 2026
bcb828c
Feature/issue59 run configloader (#61)
MartinStenhagen Feb 18, 2026
945d32b
23 define and create filter interface (#46)
eraiicphu Feb 18, 2026
3128ac7
Feature/mime type detection #8 (#47)
gitnes94 Feb 18, 2026
d4e7481
Dockerfile update (#52) (#63)
Xeutos Feb 19, 2026
5c80eaa
Added comprehensive README.MD (#67)
gitnes94 Feb 19, 2026
6950c14
Fix: Path traversal vulnerability in StaticFileHandler (#65)
apaegs Feb 19, 2026
fffdebf
updaterat i StaticFileHandler och skapat CacheFilter
Boppler12 Feb 20, 2026
c69b9dd
ska vara klart nu har glömt att commit jobbet inser jag dock
Boppler12 Feb 17, 2026
bfa3129
har lagt till i line 20-25 samt line 29
Boppler12 Feb 21, 2026
3b34b91
tester för FileCacheTest
Boppler12 Feb 17, 2026
b2ef693
updaterat i StaticFileHandler och skapat CacheFilter
Boppler12 Feb 20, 2026
515bc8c
Merge remote-tracking branch 'origin/issue36' into Server‑side-cachin…
Boppler12 Feb 21, 2026
0a53b7f
vad problem med github
Boppler12 Feb 21, 2026
ddd7b40
vad problem med github
Boppler12 Feb 21, 2026
0c47d58
nu ska det funka
Boppler12 Feb 21, 2026
78f7e21
Resolve port: CLI > config > default (#29)
viktorlindell12 Feb 23, 2026
dd0530a
tog i bort cache git för missar
Boppler12 Feb 23, 2026
7f73baf
la till concurrentHashMap i rad 8
Boppler12 Feb 23, 2026
86f2ba7
Refactor status codes to constants #71 (#77)
eeebbaandersson Feb 23, 2026
0a3c08c
refactored caching by removing FileCache completely; implemented an i…
Boppler12 Feb 23, 2026
56cc3e8
removed extra whitespace in MAX_CACHE_BYTES declaration
Boppler12 Feb 24, 2026
d20bb6f
removed things not used in code
Boppler12 Feb 24, 2026
103178a
fixed file path (#86)
gurkvatten Feb 24, 2026
e72f073
Fix path in Dockerfile for `www` directory copy operation (#87)
codebyNorthsteep Feb 24, 2026
ff4cd12
Feature/27 ipfilter (#70)
apaegs Feb 24, 2026
7652687
Feature/LocaleFilter (#81)
AntonAhlqvist Feb 25, 2026
3231ee1
ändringar som kodrabbit förstog
Boppler12 Feb 25, 2026
99f5fd7
ändringar som kodrabbit förstog
Boppler12 Feb 25, 2026
04cba97
ändringar som kodrabbit förstog
Boppler12 Feb 25, 2026
c158677
refactored StaticFileHandler to improve error handling, enhance sanit…
Boppler12 Feb 25, 2026
811ccce
fixa lite och hade glömt att commit vissa saker efter ändringar
Boppler12 Feb 25, 2026
1df4286
glömde av att fixa problem i cachefilter
Boppler12 Feb 25, 2026
19d0a48
updated CacheFilter to clean dead comments and import Paths/Path; imp…
Boppler12 Feb 25, 2026
d4227b0
fixat så problem som kommer up vid commit
Boppler12 Feb 25, 2026
3497f8a
Merge branch 'main' into issue36
Boppler12 Feb 25, 2026
bb0d51a
kom up problem när github kör ska ha fixat det tror jag
Boppler12 Feb 25, 2026
f5b2f44
kom up problem när github kör ska ha fixat det tror jag
Boppler12 Feb 25, 2026
d6f1d26
Create LoggFilter (#83)
AnnaZiafar Feb 25, 2026
704f8d8
Gjort det coderabbit bätt mig om
Boppler12 Feb 25, 2026
3f107c6
fixa problem
Boppler12 Feb 25, 2026
27e627c
Return status code 500 (#79)
AnnaZiafar Feb 25, 2026
db0c574
Feature/LocaleFilterCookie (#92)
AntonAhlqvist Feb 25, 2026
b7154fa
added brotli4j (#94)
gurkvatten Feb 25, 2026
d87171b
fixat mer
Boppler12 Feb 25, 2026
c74b88b
fixat mer från coderabbit
Boppler12 Feb 25, 2026
baa3981
daniel har hjälp mig med ändringar
Boppler12 Feb 25, 2026
fa1599a
Issue/69 remove html concat (#73)
Rickank Feb 26, 2026
f3bb1ac
daniel har hjälp mig med ändringar
Boppler12 Feb 26, 2026
2f8312b
fixat så uri rensas och återanvänds, lade till ny metod för sanering
Boppler12 Feb 26, 2026
32cbdd3
Merge branch 'main' into issue36
Boppler12 Feb 26, 2026
331615a
fixa compleir issue
Boppler12 Feb 26, 2026
1be780f
behövde fixa saker efter en rebase
Boppler12 Feb 26, 2026
56ba520
should have made it according to the mall given
Boppler12 Feb 28, 2026
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
32 changes: 32 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Java CI with Maven

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Get Java Version
run: |
JAVA_VERSION=$(mvn help:evaluate "-Dexpression=maven.compiler.release" -q -DforceStdout)
echo "JAVA_VERSION=$JAVA_VERSION" >> $GITHUB_ENV

- name: Set up JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'temurin'
cache: maven

- name: Compile with Maven
run: mvn -B compile --file pom.xml

- name: Test with Maven
run: mvn -B test --file pom.xml
35 changes: 35 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Publish Docker Image to Github Packages on Release
on:
release:
types:
- published
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v6.0.2
- uses: docker/setup-qemu-action@v3.7.0
- uses: docker/setup-buildx-action@v3.12.0
- name: Log in to GHCR
uses: docker/login-action@v3.7.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5.10.0
with:
images: ghcr.io/ithsjava25/webserver
- name: Build and push
uses: docker/build-push-action@v6.18.0
with:
context: .
push: true
platforms: linux/amd64, linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

16 changes: 16 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM maven:3-eclipse-temurin-25-alpine AS build
WORKDIR /build
COPY src/ src/
COPY pom.xml pom.xml
RUN mvn compile
RUN mvn dependency:copy-dependencies -DincludeScope=compile

FROM eclipse-temurin:25-jre-alpine
EXPOSE 8080
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
WORKDIR /app/
COPY --from=build /build/target/classes/ /app/
COPY --from=build /build/target/dependency/ /app/dependencies/
COPY www/ ./www/
USER appuser
ENTRYPOINT ["java", "-classpath", "/app:/app/dependencies/*", "org.example.App"]
49 changes: 49 additions & 0 deletions PortConfigurationGuide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Konfiguration: port (CLI → config-fil → default)

Det här projektet väljer vilken port servern ska starta på enligt följande prioritet:

1. **CLI-argument** (`--port <port>`) – högst prioritet
2. **Config-fil** (`application.yml`: `server.port`)
3. **Default** (`8080`) – används om port saknas i config eller om config-filen saknas

---

## 1) Default-värde

Om varken CLI eller config anger port används:

- **8080** (default för `server.port` i `AppConfig`)

---

## 2) Config-fil: `application.yml`

### Var ska filen ligga?
Standard:
- `src/main/resources/application.yml`

### Exempel
```yaml
server:
port: 9090
```

---

## 3) CLI-argument

CLI kan användas för att override:a config:

```bash
java -cp target/classes org.example.App --port 8000
```

---

## 4) Sammanfattning

Prioritet:

1. CLI (`--port`)
2. `application.yml` (`server.port`)
3. Default (`8080`)
Loading