1
0
mirror of synced 2026-09-12 12:15:13 +00:00
Commit Graph

2195 Commits

Author SHA1 Message Date
Robert Winch 0ca2c39244 Ignore Chrome DevTools well-known probe in default RequestCache
Chrome DevTools itself (not the loaded page, and not the user)
requests /.well-known/appspecific/com.chrome.devtools.json when
DevTools is open against a page, as part of the Automatic Workspace
Folders feature, to map a local project folder for live source
editing. This request is tooling-driven, not user navigation, so it
should never be able to become the URL a user is redirected to after
authenticating.

Closes gh-19694
2026-09-09 14:12:56 -05:00
Robert Winch bf30738840 Ignore browserconfig.xml requests in default RequestCache
Legacy Internet Explorer 11 and pre-Chromium Edge automatically fetch
browserconfig.xml at the domain root to configure Windows pinned-site
tiles. It's still commonly generated by favicon-generator tooling even
though it's legacy, and is a background request unrelated to what the
user actually navigated to, so it shouldn't be able to become the URL
a user is redirected to after authenticating.

Closes gh-19693
2026-09-09 14:08:39 -05:00
Robert Winch d6363f2d3e Ignore web app manifest requests in default RequestCache
Chrome, Edge, and other Chromium-based browsers asynchronously fetch
a page's web app manifest (manifest.json or manifest.webmanifest)
shortly after page load to evaluate PWA installability. This is a
fire-and-forget background request that should never become the URL
a user is redirected to after authenticating.

Closes gh-19695
2026-09-09 14:00:19 -05:00
Robert Winch 242a779034 Ignore Apple touch icon requests in default RequestCache
Safari and other WebKit-based browsers automatically probe for
apple-touch-icon.png, apple-touch-icon-precomposed.png, and sized
variants (e.g. apple-touch-icon-152x152.png) at the domain root as
soon as a page loads, even without a matching <link> tag. This is a
background fetch unrelated to what the user actually navigated to, so
it should never become the URL a user is redirected to after
authenticating, just like the existing favicon.* exclusion.

This also refactors the single-pattern favicon matcher into a small
list of ignored background-request patterns so more patterns can be
added going forward.

Closes gh-19692
2026-09-09 13:54:54 -05:00
Josh Cummings 7efae499d5 Merge branch '7.1.x'
# Conflicts:
#	gradle/libs.versions.toml
2026-09-08 12:05:41 -06:00
Josh Cummings 3abed4886f Merge branch '7.0.x' into 7.1.x
# Conflicts:
#	gradle/libs.versions.toml
2026-09-08 12:04:42 -06:00
Tran Ngoc Nhan 4e5eb822a0 Fix typos in Javadocs
- Add missing parentheses
- Add missing quote
- Remove duplicate word

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
2026-09-08 12:02:43 -06:00
Josh Cummings 411dbb83a1 Merge branch '7.1.x' 2026-09-08 10:26:03 -06:00
Josh Cummings b894640bc7 Update Formatting and Style
Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-09-08 10:19:57 -06:00
Josh Cummings a551be65eb Update Formatting and Style
Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-09-04 09:24:19 -07:00
Josh Cummings 2e52e1063a Merge branch '7.1.x'
Closes gh-19646
2026-09-03 12:27:03 -06:00
Josh Cummings 801f890ed0 Merge branch '7.0.x' into 7.1.x
Closes gh-9175 on 7.1.x
2026-09-03 12:26:14 -06:00
Josh Cummings 1a7769be28 Fix Checkstyle
Issue gh-9175

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-09-03 11:18:58 -07:00
Dmitrii Bocharov bdf501fe87 Fix HeaderWriterFilter Race Condition
Closes gh-9175

Signed-off-by: Dmitrii Bocharov <bdshadow@gmail.com>
2026-09-03 11:18:58 -07:00
Josh Cummings 475af0d3db Use Constant-Time Equals
This commit updates the filter to use constant-time
equals for sensitive material

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-08-20 11:22:43 -06:00
Josh Cummings 836190546d Use Constant-Time Equals
This commit updates the filter to use constant-time
equals for sensitive material

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-08-20 11:21:05 -06:00
Josh Cummings addebb61ed Use Constant-Time Equals
This commit updates the filter to use constant-time
equals for sensitive material

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-08-20 10:38:07 -06:00
Josh Cummings 8876c30b00 Disable Lowercase HTTP Method Firewall Test
Spring Framework's HttpMethod#valueOf now normalizes casing, so
StrictServerWebExchangeFirewall no longer detects a non-canonical-case
HTTP method as distinct from its canonical form.

Closes gh-19541

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-08-13 11:51:30 -06:00
Josh Cummings 852e81640b Merge branch '7.0.x' into 7.1.x 2026-08-11 19:40:43 -06:00
Kim Tae Eun 17c58ef088 Remove BeanResolver Null Checks
StandardEvaluationContext.setBeanResolver now accepts a nullable
BeanResolver, so the workarounds added for the original limitation
are no longer needed. This removes the explicit null guards (and
equivalent Optional.ofNullable idiom) as well as the
@SuppressWarnings("NullAway") annotations introduced to silence
the false positives.

In addition to the seven sites that explicitly referenced
spring-projects/spring-framework#35371, two sites in
spring-security-core followed the same workaround pattern without
the comment marker (AbstractSecurityExpressionHandler and
DefaultMethodSecurityExpressionHandler) and have also been
simplified.

Closes gh-17816

Signed-off-by: Kim Tae Eun <snowykte0426@naver.com>
2026-08-11 18:37:09 -07:00
Joe Grandja faea9352dc Merge branch 'main' 2026-06-04 15:03:28 -04:00
Joe Grandja 0fa81bfb6d Merge branch '7.0.x' 2026-06-04 14:55:31 -04:00
Josh Cummings 1e30882290 Merge branch '7.0.x' 2026-06-01 14:07:53 -06:00
Josh Cummings 7fc97c6ee2 Select Most Specific RDN in X500 Principal Extractor
SubjectX500PrincipalExtractor now returns the left-most, most-specific
matching RDN value, matching both convention and
SubjectDnX509PrincipalExtractor. Since LdapName#getRdns lists RDNs
most-significant first, the extractor reads them in reverse so that a
subject with more than one matching attribute (e.g. two CNs) resolves to
the most specific value.

Closes gh-19254

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-06-01 14:05:58 -06:00
Joe Grandja 9027e10b00 Merge branch '7.0.x' 2026-05-28 06:56:18 -04:00
Joe Grandja c50e4c02bb Merge branch '6.5.x' into 7.0.x 2026-05-28 06:55:13 -04:00
Josh Cummings a14c9d66b1 Favor Relative URIs in CookieRequestCache
Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-05-28 06:54:59 -04:00
Josh Cummings 65abe239ba Merge branch '7.0.x' 2026-04-29 09:04:18 -06:00
Josh Cummings fdc0fd23df Merge branch '6.5.x' into 7.0.x
Closes gh-19137
2026-04-29 09:03:43 -06:00
Josh Cummings b075f0df02 Decode percent-encoded values
Closes gh-19136

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-04-29 08:57:16 -06:00
Josh Cummings 40b074580c Merge branch '7.0.x' into main 2026-04-20 10:21:19 -06:00
Josh Cummings 88118afb8f Use RDN Parsing
Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-04-15 18:41:31 -06:00
Josh Cummings 83ba30d138 Merge branch '7.0.x' 2026-04-15 15:05:04 -06:00
Josh Cummings 4ec000a07c Merge branch '6.5.x' into 7.0.x 2026-04-15 15:04:51 -06:00
Josh Cummings 3cf9397a7d Polish HtmlTemplates
This commit changes HtmlTemplates to use replace
instead of replaceAll since supporting regex in template
keys is not needed.

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-04-15 14:59:29 -06:00
Josh Cummings 036ccff1f5 Move Focus to OTT Button When Username is Read-Only
Closes gh-18817

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-04-07 18:32:15 -06:00
Anantha Krishnan 245733a631 fix: restore native form submission for OTT login
Signed-off-by: Anantha Krishnan <ananthakrishnanj2001@gmail.com>
2026-04-07 18:32:15 -06:00
Josh Cummings cb129d6b2d Merge branch '7.0.x' 2026-03-31 15:56:49 -06:00
Josh Cummings d4678c8e04 Add Missing Serialization Support
Closes gh-19013

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-03-31 15:55:09 -06:00
Josh Cummings 08fca57d12 Add Missing Serialization Support
Closed gh-19012

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-03-31 13:58:35 -06:00
Rob Winch 5a4ada04ac Merge pull request #19004 from rwinch/CredentialRecordOwnerAuthorizationManager
Add CredentialRecordOwnerAuthorizationManager
2026-03-29 23:46:03 -04:00
Robert Winch a856baa6a8 Add CredentialRecordOwnerAuthorizationManager
Add CredentialRecordOwnerAuthorizationManager that verifies the
credential being deleted is owned by the currently authenticated user.
Also add an AuthorizationManager<Bytes> to WebAuthnRegistrationFilter
for the delete credential operation, defaulting to deny all, and wire it
up in WebAuthnConfigurer.

Per the WebAuthn specification [1], credential ids contain at least 16
bytes with at least 100 bits of entropy, making them practically
unguessable. The specification also advises that credential ids should
be kept private, as exposing them can leak personally identifying
information [2]. The CredentialRecordOwnerAuthorizationManager serves as
defense in depth: even if a credential id were somehow exposed, an
unauthorized user could not delete another user's credential.

[1] https://www.w3.org/TR/webauthn-3/#credential-id
[2] https://www.w3.org/TR/webauthn-3/#sctn-credential-id-privacy-leak
2026-03-29 21:54:27 -05:00
Josh Cummings 2c32a9a969 Merge branch '7.0.x' 2026-03-27 16:10:36 -06:00
Josh Cummings 721b22d87a Merge remote-tracking branch 'origin/6.5.x' into 7.0.x 2026-03-27 16:10:18 -06:00
Tran Ngoc Nhan 85b756cb74 Update FilterChainProxy#getFilters(String) javadoc
Closes gh-18157

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
2026-03-27 16:09:50 -06:00
Ziqin Wang acbf64a47d Improve And/Or-RequestMatcher/ServerWebExchangeMatcher API
Currently, the List-receiving constructors of AndRequestMatcher,
OrRequestMatcher, AndServerWebExchangeMatcher, and OrServerWebExchangeMatcher
don't support covariance, which adds obstacles to users of these
APIs.  For example, one cannot pass a List<PathPatternRequestMatcher>
to OrRequestMatcher(List<RequestMatcher>).

This commit resolves the aforementioned problem.  It should not
break existing code.

Signed-off-by: Ziqin Wang <ziqin@wangziqin.net>
2026-03-27 15:24:55 -06:00
Joe Kuhel 46e27aa693 Remove compiler warnings in spring-security-web
- fix compiler warnings in ServerOneTimeTokenAuthenticationConverter
- Replace deprecated API calls to create a OneTimeTokenAuthenticationToken.unauthenticated with OneTimeTokenAuthenticationToken(String token) call
- Update HttpMessageConverterAuthenticationSuccessHandler to replace deprecated MappingJackson2HttpMessageConverter with JacksonJsonHttpMessageConverter
- Replace updated OneTimeTokenAuthenticationConverter to use non-deprecated OneTimeTokenAuthenticationToken constructor
- update tests to remove use of deprecated methods
- refactor JdbcTokenRepositoryImpl to remove extension of deprecated JdbcDaoSupport class
- enable compile-warnings-error plugin

Closes gh-18441

Signed-off-by: Joe Kuhel <4983938+jkuhel@users.noreply.github.com>
2026-03-27 15:14:55 -06:00
Robert Winch 9f67afee42 Merge Handle null value in OnCommittedResponseWrapper header methods 2026-03-26 15:58:12 -05:00
Robert Winch 2848b95fe0 Merge Handle null value in OnCommittedResponseWrapper header methods 2026-03-26 15:44:49 -05:00
Robert Winch 0039bc0cf0 Handle null value in OnCommittedResponseWrapper header methods
Closes gh-18970
2026-03-26 14:50:44 -05:00