Repository navigation
feat: reimplement SAML SSO on pac4j-saml (PR 5 of jakarta migration #861) #939
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
ismisepaul
merged 23 commits into
feat/jakarta-04-ee11-retarget
from
feat/jakarta-05-saml-pac4j
Oct 23, 2026
+4,156
−117
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
f7ce2cf
feat: reimplement SAML SSO on pac4j-saml (PR 5 of jakarta migration #…
ismisepaul 1d8ab6c
Merge branch 'feat/jakarta-04-ee11-retarget' into feat/jakarta-05-sam…
ismisepaul ca398df
fix: authenticate SAML logout messages and end only the named sessions
ismisepaul dd18a9a
fix: bind SAML redirect signatures to the message pac4j reads; end ev…
ismisepaul 3347282
build: correct the spring.version comment
ismisepaul a7aa59c
fix: check SAML LogoutRequest destination, freshness and replay; ECDS…
ismisepaul e22d1b0
fix: match complete SAML NameIDs, advertise verifiable SLO bindings, …
ismisepaul 998b266
fix: treat requested SAML authentication contexts as alternatives
ismisepaul f589e47
fix: advertise no SAML logout endpoint when no SLS URL is configured
ismisepaul 0100290
build: restrict and PGP-verify the Shibboleth repository (OpenSAML)
ismisepaul ab0b672
build: require Maven 3.9.2+ so the Shibboleth repository filter applies
ismisepaul c0bb9fe
fix: keep no-op logouts out of the replay cache; omit temporary SP keys
ismisepaul 3fdd95c
fix: SLS must not log users out by redirecting to login.jsp
ismisepaul 10d2af5
Merge branch 'feat/jakarta-04-ee11-retarget' into feat/jakarta-05-sam…
ismisepaul 0b6a59b
Merge branch 'feat/jakarta-04-ee11-retarget' into feat/jakarta-05-sam…
ismisepaul 2a6d4b3
fix: bind SAML logins to the browser, gate SSO on sso.enabled, reject…
ismisepaul bad7b28
docs: SAML sample notes SP-initiated-only login and the binding cookie
ismisepaul fe7a470
fix: scope the SAML binding cookie to the SAML directory; isolate fix…
ismisepaul 4ea6078
fix: refresh the SAML binding cookie's Max-Age on every login start
ismisepaul 95dff1d
fix: require the bearer confirmation to answer the correlated request
ismisepaul b1086b6
docs: note the bearer confirmation must name the AuthnRequest
ismisepaul 3da88a1
Merge branch 'feat/jakarta-04-ee11-retarget' into feat/jakarta-05-sam…
ismisepaul d1a75e1
fix: give each SAML login its own binding cookie
ismisepaul File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| -Daether.remoteRepositoryFilter.groupId=true | ||
| -Daether.remoteRepositoryFilter.groupId.basedir=${maven.multiModuleProjectDirectory}/.mvn/rrf | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| # PGP keys map for pgpverify-maven-plugin (see pom.xml). Every dependency must match a rule here. | ||
| # | ||
| # OpenSAML / Shibboleth come from Shibboleth's own repository (not Maven Central), so they are | ||
| # pinned to the Shibboleth release key: Philip David Smart (Jisc), fingerprint | ||
| # B5B5 DD33 2142 AD65 7E8D 87AC 7D27 E610 B8A3 DC52, as published at | ||
| # https://shibboleth.net/downloads/PGP_KEYS. Never add a wildcard that could also match these | ||
| # groups: any matching rule is enough for an artifact to pass, which would undo the pin. | ||
| org.opensaml = 0xB5B5DD332142AD657E8D87AC7D27E610B8A3DC52 | ||
| net.shibboleth = 0xB5B5DD332142AD657E8D87AC7D27E610B8A3DC52 | ||
|
|
||
| # Everything else comes from Maven Central only (.mvn/rrf), and must carry a valid signature by | ||
| # any key. A new dependency from an unlisted groupId fails the build ("Not allowed artifact"): | ||
| # review it, then add its groupId here. | ||
| com.fasterxml.jackson.core = any | ||
| com.fasterxml.jackson.datatype = any | ||
| com.github.ben-manes.caffeine = any | ||
| com.github.waffle = any | ||
| com.google.code.findbugs = any | ||
| com.google.errorprone = any | ||
| com.google.guava = any | ||
| com.google.j2objc = any | ||
| com.google.protobuf = any | ||
| com.googlecode.json-simple = any | ||
| com.mysql = any | ||
| com.zaxxer = any | ||
| commons-codec = any | ||
| commons-io = any | ||
| commons-logging = any | ||
| de.mkammerer = any | ||
| io.dropwizard.metrics = any | ||
| io.github.cdimascio = any | ||
| io.micrometer = any | ||
| jakarta.activation = any | ||
| jakarta.el = any | ||
| jakarta.mail = any | ||
| jakarta.servlet.jsp.jstl = any | ||
| junit = any | ||
| net.bytebuddy = any | ||
| net.java.dev.jna = any | ||
| net.sf.jtidy = any | ||
| org.apache.commons = any | ||
| org.apache.httpcomponents.client5 = any | ||
| org.apache.httpcomponents.core5 = any | ||
| org.apache.logging.log4j = any | ||
| org.apache.santuario = any | ||
| org.apache.velocity = any | ||
| org.apiguardian = any | ||
| org.bouncycastle = any | ||
| org.checkerframework = any | ||
| org.cryptacular = any | ||
| org.eclipse.angus = any | ||
| org.glassfish = any | ||
| org.glassfish.web = any | ||
| org.hamcrest = any | ||
| org.jetbrains = any | ||
| org.jetbrains.kotlin = any | ||
| org.json = any | ||
| org.jsoup = any | ||
| org.jspecify = any | ||
| org.junit.jupiter = any | ||
| org.junit.platform = any | ||
| org.mariadb.jdbc = any | ||
| org.mockito = any | ||
| org.mongodb = any | ||
| org.objenesis = any | ||
| org.opentest4j = any | ||
| org.owasp.encoder = any | ||
| org.pac4j = any | ||
| org.slf4j = any | ||
| org.springframework = any | ||
|
|
||
| # Unsigned legacy artifact pulled in via json-simple -> junit 4.10 (to be removed, see #944). | ||
| # Exact version only. | ||
| org.hamcrest:hamcrest-core:1.1 = noSig |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| net.shibboleth | ||
| org.opensaml |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.