diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 5c50e4b..a965570 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -15,7 +15,7 @@ jobs:
suite:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v7
- name: Unit suite
run: docker build --target test .
- name: Live iya-sts
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index d020733..3035f48 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -57,7 +57,7 @@ jobs:
fi
# Every tag: the last release's tag is what the decision compares with.
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v7
if: steps.gate.outputs.publish == 'true'
with:
ref: ${{ github.event.workflow_run.head_sha }}
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 3525a9c..98a7dc0 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -15,5 +15,5 @@ jobs:
name: Library tests
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v7
- run: docker build --target test .
diff --git a/CLAUDE.md b/CLAUDE.md
index 6d64c1f..ca2cb6b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -20,7 +20,7 @@ Request bindings are `redirect` and `post`. Response bindings are `post`, `redir
docker build --target test .
```
-The `test` stage runs `mvn -B test` in `maven:3.9.6-eclipse-temurin-17`, with `python3` and `openssl` installed for `TrustChainTest` (the install script's code and `scripts/trust_chain.py` write the four-certificate chain to `idpCa`'s path; the library trusts the provider and a reissued leaf through that file, and refuses a forged leaf followed by the real CA certificates and the right chain under the wrong host name). GitHub Actions uses that command. Do not run Maven on the host. The demo stage packages with `-DskipTests` in its own Maven image. Signatures and decryption are real (JDK ciphers, Apache Santuario exclusive canonicalization). Nimbus JOSE verifies Shared Signals JWS only. The stub identity provider is in `src/test/java/com/iyasec/saml/StubIdp.java`. The stub tests do not start iya-sts. Java 17.
+The `test` stage runs `mvn -B test` in `maven:3.9-eclipse-temurin-26`, with `python3` and `openssl` installed for `TrustChainTest` (the install script's code and `scripts/trust_chain.py` write the four-certificate chain to `idpCa`'s path; the library trusts the provider and a reissued leaf through that file, and refuses a forged leaf followed by the real CA certificates and the right chain under the wrong host name). GitHub Actions uses that command. Do not run Maven on the host. The demo stage packages with `-DskipTests` in its own Maven image. Signatures and decryption are real (JDK ciphers, Apache Santuario exclusive canonicalization). Nimbus JOSE verifies Shared Signals JWS only. The stub identity provider is in `src/test/java/com/iyasec/saml/StubIdp.java`. The stub tests do not start iya-sts. Java 25.
`python3 scripts/live_iya_sts.py` signs the demo in to iya-sts and checks credential-change and session-revoked on `GET /live-status`. It builds the demo the way a user does: in a scratch copy of the checkout, the install script first (writing the key pair, the metadata and the `idpCa` chain; its Java CLI runs in the demo image), then the image build, then the run with only `sp.key`, `sp.crt` and `idp-metadata.xml` mounted. No CA mount, no `idpCa` rewrite; it checks the image holds the chain and no key. Secrets go to docker as `-e NAME`; no log line carries a sign-in URL. The nightly workflow runs the unit suite and that script once every 24 hours. Neither binds port 3000, 8081 or 18481-18495; the defaults are 18555 and 18655. Push CI stays the unit suite.
diff --git a/Dockerfile b/Dockerfile
index 4032b63..8afc890 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,7 +4,7 @@
# `docker build --target test` runs the suite in this image.
# The demo image below does not run it.
-FROM maven:3.9.6-eclipse-temurin-17 AS test
+FROM maven:3.9-eclipse-temurin-26 AS test
# TrustChainTest runs the install script's trust-chain code: python3, and the
# openssl CLI it reads certificate names with.
RUN apt-get update && apt-get install -y --no-install-recommends python3 openssl && rm -rf /var/lib/apt/lists/*
@@ -19,7 +19,7 @@ COPY scripts scripts
COPY demo/saml.json demo/saml.json
RUN mvn -B test
-FROM maven:3.9.6-eclipse-temurin-17 AS build
+FROM maven:3.9-eclipse-temurin-26 AS build
WORKDIR /src
COPY pom.xml .
COPY library library
@@ -27,7 +27,7 @@ COPY demo/pom.xml demo/pom.xml
COPY demo/src demo/src
# The demo module copies its runtime dependencies, the library among them, to demo/target/dependency.
RUN mvn -B -DskipTests package
-FROM eclipse-temurin:17-jre
+FROM eclipse-temurin:25-jre
WORKDIR /app
# The demo's jar under the name the image has always run, and beside it every
# runtime dependency, the library jar among them (com.iyasec.saml.Cli is there).
diff --git a/demo/pom.xml b/demo/pom.xml
index 6ed0308..c82a20e 100644
--- a/demo/pom.xml
+++ b/demo/pom.xml
@@ -19,7 +19,7 @@
org.junit.jupiter
junit-jupiter
- 5.10.2
+ 6.1.3
test
@@ -27,14 +27,14 @@
maven-compiler-plugin
- 3.11.0
+ 3.16.0
17
maven-surefire-plugin
- 3.2.5
+ 3.6.1
${project.basedir}/..
@@ -45,7 +45,7 @@
compiled into the test classpaths only, never into a published jar. -->
org.codehaus.mojo
build-helper-maven-plugin
- 3.6.0
+ 3.6.2
test-fixtures
@@ -60,14 +60,14 @@
org.codehaus.mojo
exec-maven-plugin
- 3.1.0
+ 3.6.4
com.iyasec.saml.demo.Demo
maven-dependency-plugin
- 3.6.1
+ 3.11.0
copy-dependencies
diff --git a/library/pom.xml b/library/pom.xml
index d8142f3..a07b614 100644
--- a/library/pom.xml
+++ b/library/pom.xml
@@ -38,17 +38,17 @@
org.apache.santuario
xmlsec
- 2.3.4
+ 4.0.4
com.nimbusds
nimbus-jose-jwt
- 10.0.2
+ 10.10
org.junit.jupiter
junit-jupiter
- 5.10.2
+ 6.1.3
test
@@ -56,21 +56,21 @@
maven-compiler-plugin
- 3.11.0
+ 3.16.0
17
maven-surefire-plugin
- 3.2.5
+ 3.6.1
org.codehaus.mojo
build-helper-maven-plugin
- 3.6.0
+ 3.6.2
test-fixtures
@@ -99,7 +99,7 @@
org.apache.maven.plugins
maven-source-plugin
- 3.3.1
+ 3.4.0
attach-sources
@@ -110,7 +110,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.2
+ 3.12.0
all,-missing
@@ -125,7 +125,7 @@
org.apache.maven.plugins
maven-gpg-plugin
- 3.2.7
+ 3.2.8
bc