10500 Commits

Author SHA1 Message Date
Rob Winch
81d6b6df6c Add Explicit SessionAuthenticationStrategy Option
SessionAuthenticationFilter requires accessing the HttpSession to do its
job. Previously, there was no way to just disable the
SessionAuthenticationFilter despite the fact that
SessionAuthenticationStrategy is invoked by the authentication filters
directly.

This commit adds an option to disable SessionManagmentFilter in favor of
requiring explicit SessionAuthenticationStrategy invocation already
performed by the authentication filters.

Closes gh-11455
2022-08-18 17:38:03 -05:00
Steve Riesenberg
9c02e835e8 Refresh remote JWK when unknown KID error occurs
Closes gh-11621
2022-08-18 16:42:57 -05:00
tinolazreg
3e73fa6954 Add tests for unknown KID error
Issue gh-11621
2022-08-18 16:42:57 -05:00
Yuriy Savchenko
63d2f19e2a Remove default value for access parameter
Closes gh-10957
2022-08-18 15:22:08 -03:00
cyb3r4nt
1d555b62e3 Fix IP address parse error msg in IpAddressMatcher
There is no whitespace between error message and IP address value  `IpAddressMatcher#parseAddress()`
If IP value is wrong, then error text looks like `Failed to parse addressi.am.ip`.
There should be some separator between those two text tokens.

Also wrapped the address value with single quotes.
Will this add any confusion for the caller?
Or colon and `"Failed to parse address: $value` looks better?
2022-08-18 10:40:38 -06:00
Marcus Da Coregio
2564f061e7 Start building against Spring LDAP 3.0.0-M4 snapshots
Issue gh-11718
2022-08-17 10:33:27 -03:00
Marcus Da Coregio
af3d70f130 Remove GlobalMethodSecurityRuntimeHints
Closes gh-11714
2022-08-17 08:07:28 -03:00
Evgeniy Cheban
5ecd513a57 Add remaining methods from ExpressionUrlAuthorizationConfigurer to MessageMatcherDelegatingAuthorizationManager
- Added fullyAuthenticated
- Added rememberMe
- Added anonymous

Closes gh-11509
2022-08-16 15:12:47 -06:00
Marcus Da Coregio
00302c80ad
Move SAML Post inline javascript to script tag
To avoid relying on HTML event handlers and adding unsafe-* rules to CSP, the javascript is moved to a <script> tag. This also allows a better browser compatibility

Closes gh-11676
2022-08-16 15:11:01 -06:00
jujunChen
9f6d9c2b84 Modify words
- <dependencyManagement> to dependencyManagement
- pom.xml to build.gradle
2022-08-16 14:44:34 -06:00
Rob Winch
5cf42b1f2e Defer CsrfFilter Session Access
Closes gh-11456
2022-08-16 13:48:20 -05:00
Rob Winch
8ad20b1768 Add CsrfFilter.csrfRequestAttributeName
Previously the CsrfToken was set on the request attribute with the name
equal to CsrfToken.getParameterName(). This didn't really make a lot of
sense because the CsrfToken.getParameterName() is intended to be used as
the HTTP parameter that the CSRF token was provided. What's more is it
meant that the CsrfToken needed to be read for every request to place it
as an HttpServletRequestAttribute. This causes unnecessary HttpSession
access which can decrease performance for applications.

This commit allows setting CsrfFilter.csrfReqeustAttributeName to
remove the dual purposing of CsrfToken.parameterName and to allow deferal
of reading the CsrfToken to prevent unnecessary HttpSession access.

Issue gh-11699
2022-08-16 13:47:31 -05:00
Rob Winch
2aedf5899b LazyCsrfTokenRepository#loadToken Supports Deferring Delegation
Previously LazyCsrfTokenRepository supported lazily saving the CsrfToken
which allowed for lazily saving the CsrfToken. However, it did not
support lazily reading the CsrfToken. This meant every request required
reading the CsrfToken (often the HttpSession).

This commit allows for lazily reading the CsrfToken and thus prevents
unnecessary reads to the HttpSession.

Closes gh-11700
2022-08-16 13:47:31 -05:00
Steve Riesenberg
a73e32e43e
Add automated release info to release doc
Closes gh-11715
2022-08-16 11:46:04 -05:00
Rob Winch
ce778b0e20 NamespaceLdapAuthenticationProviderTests use Dynamic Port
Closes gh-11710
2022-08-15 15:25:15 -05:00
Rob Winch
c7b39eed58 GitHubMilestoneApiTests due_on Uses LocalDate
`GitHubMilestoneApiTests` uses `Instant.now()` for `due_on`. Since
`Instant.now()` is UTC time based,
`isMilestoneDueTodayWhenDueTodayThenTrue` fails when the computer that runs
the test is not the same day as it is in UTC time.

To fix it, `due_on` should be set to an `Instant` based upon the timezone
of the current computer.

Closes gh-11706
2022-08-15 13:02:32 -05:00
Rob Winch
425b3501b7 Remove @Configuration from @Enable* Annotations
This removes `@Configuration` from all `@Enable` Annotations and explicitly
adds `@Configuration` to wherever the `@Enable*` Annotations are used.

Closes gh-11653
2022-08-09 17:00:24 -05:00
Rob Winch
a5069d7e35 Fix Add @Configuration to @Enable*Security Usage
Issue gh-6613
2022-08-09 17:00:16 -05:00
Marcus Da Coregio
24bb83e2c7 Consistently handle RequestRejectedException if it is wrapped
Closes gh-11645
2022-08-09 08:31:45 -03:00
Igor Bolic
2e66b9f6cc Allow customization of redirect strategy
The default redirect strategy will provide authorization redirect
URI within HTTP 302 response Location header.
Allowing the configuration of custom redirect strategy will provide
an option for the clients to obtain the authorization URI from e.g.
HTTP response body as JSON payload, without a need to handle
automatic redirection initiated by the HTTP Location header.

Closes gh-11373
2022-08-08 15:44:01 -05:00
Rob Winch
c23324e7a7 RequestAttributeSecurityContextRepository never null SecurityContext
Previously loadContext(HttpServletRequest) could return a Supplier that
returned a null SecurityContext

This commit ensures that null is never returned by the Supplier by
returning SecurityContextHolder.createEmptyContext() instead.

Closes gh-11606
2022-08-08 14:14:12 -05:00
Josh Cummings
ed58ac7d78
Add Conditions to Generating AuthnRequest
Closes gh-11657
2022-08-03 17:49:48 -06:00
Josh Cummings
9e8a04d414
Polish Tests
Issue gh-11657
2022-08-03 17:49:46 -06:00
Marcus Da Coregio
f8971742f2 Remove FilterSecurityInterceptor from WebSecurity
Closes gh-11325
2022-08-02 15:34:02 -03:00
Scott Shidlovsky
508f7d7b8a Update OpenSamlAuthenticationRequestResolverTests from Junit 4 to Junit 5 2022-08-02 08:02:22 -06:00
Scott Shidlovsky
947445fcc5 Add ID to Saml2 Post and Redirect Requests
Closes gh-11468
2022-08-02 08:02:22 -06:00
Joshua Sattler
040111ae9e Remove Configuration meta-annotation from Enable* annotations
Before, Spring Security's @Enable* annotations were meta-annotated with @Configuration.
While convenient, this is not consistent with the rest of the Spring projects and most notably
Spring Framework's @Enable annotations. Additionally, the introduction of support for
@Configuration(proxyBeanMethods=false) in Spring Framework provides a compelling reason to
remove @Configuration meta-annotation from Spring Security's @Enable annotations and allow
users to opt into their preferred configuration mode.

Closes gh-6613

Signed-off-by: Joshua Sattler <joshua.sattler@mailbox.org>
2022-07-30 03:48:42 +02:00
Steve Riesenberg
15f525c614 Polish HttpSecurity 2022-07-29 17:42:20 -05:00
Steve Riesenberg
0c0c75ce22 Remove references to WebSecurityConfigurerAdapter
* AbstractAuthenticationFilterConfigurer
* DefaultLoginPageConfigurer
* EnableGlobalAuthentication
* FormLoginConfigurer
* HeadersConfigurer
* HttpSecurity
* OpenIDLoginConfigurer
* RememberMeConfigurer
* WebSecurity
* WebSecurityConfiguration
* WebSecurityConfigurer
* X509Configurer

Closes gh-11288
2022-07-29 17:42:20 -05:00
Steve Riesenberg
9861769b02 Remove references to WebSecurityConfigurerAdapter in EnableWebSecurity
Closes gh-11277
2022-07-29 17:42:20 -05:00
Steve Riesenberg
9d248c7185
Skip workflows on forks of spring-security 2022-07-28 14:17:42 -05:00
Steve Riesenberg
865bf23ecc
Use cache and user.name system property on Windows 2022-07-28 13:00:15 -05:00
Ulrich Grave
4393c2ea02
Add hash-based Content-Security-Policy for SAML pages
Closes gh-11631
2022-07-27 18:04:39 -06:00
Steve Riesenberg
f86d30f4a1
Only run prerequisites job if on upstream repo 2022-07-27 16:01:16 -05:00
Steve Riesenberg
dc59d12405
Simplify dependency graph 2022-07-27 16:01:15 -05:00
Steve Riesenberg
bdeb32854e
Use Spring Gradle Build Action
Closes gh-11630
2022-07-27 16:01:15 -05:00
Marcus Da Coregio
7f2c797086 Add Deprecated annotation to WebSecurity#securityInterceptor
Closes gh-11634
2022-07-27 14:39:56 -03:00
Steve Riesenberg
a72c5a55db
Revert "Remove @Configuration from webflux config examples"
This reverts commit aec9effb88f70151912971b2f8b05dc4a9afaa2f.
2022-07-26 16:46:01 -05:00
Joshua Sattler
aec9effb88 Remove @Configuration from webflux config examples 2022-07-26 16:34:10 -05:00
Rob Winch
9fbe6b7731 Fix Snapshot Sources/Javadoc
This commit merges a workaround to an issue in JFrog's Gradle plugin
which causes SNAPSHOT javadoc and sources to become out of sync and thus
prevents users from being able to download either.

Closes gh-10602
2022-07-26 15:49:52 -05:00
Rob Winch
b6258fe1f9 Apply ArtifactoryPlugin in RootProjectPlugin
Issue gh-10602
2022-07-26 15:42:51 -05:00
Rob Winch
8aa6fbfed2 ArtifactoryPlugin only apply default publications for MavenPublishPlugin
Issue gh-10602
2022-07-26 15:42:51 -05:00
Rob Winch
e3ed6b3539 Update to build-info-extractor-gradle:4.29.0
Issue gh-10602
2022-07-26 15:42:50 -05:00
Desmond Silveira
3b9f5ac77b
"Well-Know" should be "Well-Known" 2022-07-26 15:41:38 -05:00
Steve Riesenberg
3f4efedd23
Polish gh-11367 2022-07-26 15:33:34 -05:00
naveen
8f93a7fc94
Set permissions for GitHub actions
Restrict the GitHub token permissions only to the required ones; this
way, even if the attackers will succeed in compromising your workflow,
they won’t be able to do much.

- Included permissions for the action.

https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests
https://securitylab.github.com/research/github-actions-preventing-pwn-requests/

Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-07-26 15:33:33 -05:00
Marcus Da Coregio
b76966638d Use Spring Framework 6.0.0-SNAPSHOT 2022-07-25 14:24:55 -03:00
Marcus Da Coregio
0c549ee147 Use SHA256 by default in Remember Me
Closes gh-11520
2022-07-25 10:33:12 -03:00
Yuriy Savchenko
db9d60e82d Add Kotlin example for WebTestClient setup docs
Closes gh-9998
2022-07-22 13:47:07 -03:00
Josh Cummings
e092ec780f
Merge Same-named Attribute Elements
Closes gh-11042
2022-07-20 18:33:24 -06:00