Commit Graph
44 Commits
Author SHA1 Message Date
Andy Wilkinson 6fe126afed Merge branch '4.0.x' into 4.1.x 2026-09-16 09:09:12 +01:00
Andy Wilkinson d9abd902f5 Revert "Merge pull request #51549 from aashikantkumar"
This reverts commit ad8f14e785, reversing
changes made to 1d79f56ad7.

See gh-51549
2026-09-16 09:08:23 +01:00
Andy Wilkinson 60dc60c5f6 Merge branch '4.0.x' into 4.1.x
Closes gh-51616
2026-09-08 09:19:33 +01:00
Andy Wilkinson 23275d826b Polish "Preserve firewall in reactive CF security auto-configuration"
See gh-51549

Signed-off-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
2026-09-08 09:18:26 +01:00
Andy Wilkinson c1900d0bc9 Merge branch '4.0.x' into 4.1.x
Closes gh-51614
2026-09-08 09:15:55 +01:00
aashikantkumar 4f3d0349f3 Preserve firewall in reactive CF security auto-configuration
Prior to this commit, CloudFoundryReactiveActuatorAutoConfiguration
registered a BeanPostProcessor replaced the WebFilterChainProxy bean
with one that handled CF security and delegated to the existing
chain.

Constructing a new WebFilterChainProxy resulted in the loss of any
firewall customization on the existing chain as Spring Security does
not provide an API to retreive the firewall from the existing chain
and apply it to the new chain.

This commit changes the approach and aligns it with its Servlet
counterpart. Instead of post-processing the filter chain proxy, a new
SecurityWebFilterChain that handles cloudfoundryapplication/**
is defined. This chain becomes part of the existing
WebFilterChainProxy, preserving any firewall customization.

Signed-off-by: aashikantkumar <aashikantkumar2@gmail.com>

See gh-51549
2026-09-08 08:56:38 +01:00
Andy Wilkinson 1d79f56ad7 Return 503 for missing application ID or cloud controller URL
Previously, the CloudFoundryAuthorizationExceptions thrown for a
missing application ID or cloud controller URL were not routed
through the error handling that turned them into a SecurityResponse
with a 503 status code. As a result, they were processed by the
general exception handling which resulted in a 500 response.

This commit updates the reactive SecurityInterceptor so that the
exceptions are processed through
SecurityInterceptor::getErrorResponse. This aligns the behavior of
the Cloud Foundry security intergration in a reactive application
more closely with that of a Servlet application.

Fixes gh-51613
2026-09-08 08:51:58 +01:00
Andy Wilkinson ea613dc511 Merge branch '4.0.x' into 4.1.x
Closes gh-51599
2026-09-07 08:26:42 +01:00
Manu Sridharan 25a3f8feb9 Remove unnecessary NullAway suppressions
Signed-off-by: Manu Sridharan <msridhar@gmail.com>

See gh-51591
2026-09-07 08:18:11 +01:00
Andy Wilkinson 61a62d56d8 Merge branch '4.0.x' into 4.1.x
Closes gh-51584
2026-09-04 12:58:36 +01:00
Manu Sridharan 1c50b1cb7c Fix new warnings from NullAway 0.14.1
Signed-off-by: Manu Sridharan <msridhar@gmail.com>

See gh-51507
2026-09-04 12:56:34 +01:00
Stéphane Nicoll bc156310c2 Merge branch '4.0.x' into 4.1.x 2026-07-25 07:22:31 +02:00
Stéphane Nicoll 578aca2b08 Polish "Use RestClient in tests and infrastructure code"
See gh-51120
2026-07-25 07:22:03 +02:00
Stéphane Nicoll 9821dade80 Merge branch '4.0.x' into 4.1.x
Closes gh-51121
2026-07-24 15:19:14 +02:00
Stéphane Nicoll b9ebff0084 Use RestClient in tests and infrastructure code
Closes gh-51120
2026-07-24 15:10:43 +02:00
Stéphane Nicoll 6c160f17d9 Merge branch '4.0.x'
Closes gh-50944
2026-07-14 15:38:56 +02:00
Stéphane Nicoll bbacbc6291 Do not require WebClient.Builder in CloudFoundry auto-configuration
Closes gh-50928
2026-07-14 15:37:40 +02:00
Stéphane Nicoll 666d7d042d Merge branch '4.0.x'
Closes gh-50942
2026-07-14 11:12:24 +02:00
Stéphane Nicoll a0c8fa445b Polish "Guard reactive Cloud Foundry health extension"
See gh-50916
2026-07-14 11:09:17 +02:00
Lee JiWon bda889997d Guard reactive Cloud Foundry health extension
Move the reactive Cloud Foundry health endpoint extension into a
health-specific configuration guarded by @ConditionalOnClass. When
spring-boot-health is absent, scanning the outer configuration attempts
to resolve ReactiveHealthEndpointWebExtension and causes context refresh
to fail.

See gh-50916

Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>
2026-07-14 08:37:44 +02:00
Andy Wilkinson 94c455b27a Merge branch '4.0.x'
Closes gh-50871
2026-06-27 12:51:56 +01:00
Lee JiWon 48054ea77b Avoid loading health classes in Cloud Foundry
Move the Cloud Foundry health endpoint extension bean into a
health-specific configuration. This lets the actuator configuration
refresh when spring-boot-health is absent.

See gh-50857

Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>
2026-06-27 12:48:47 +01:00
Andy Wilkinson 6a74bb85a3 Merge branch '4.0.x'
Closes gh-50440
2026-05-14 15:03:44 +01:00
Andy Wilkinson add52b6ccd Merge branch '3.5.x' into 4.0.x
Closes gh-50439
2026-05-14 15:02:24 +01:00
Andy Wilkinson e7d11afe45 Merge branch '4.0.x'
Closes gh-50258
2026-04-30 12:38:09 +01:00
Andy Wilkinson a0a344f4b4 Merge branch '3.5.x' into 4.0.x
Fixes gh-50257
2026-04-30 12:35:30 +01:00
Andy Wilkinson 783dcb9d97 Merge branch '4.0.x'
Closes gh-50018
2026-04-10 12:37:02 +01:00
Andy Wilkinson cd88bf71f5 Merge branch '3.5.x' into 4.0.x
Closes gh-50017
2026-04-10 12:28:27 +01:00
Brian Clozel dba19c73c7 Polishing contribution
See gh-49744

Signed-off-by: Brian Clozel <brian.clozel@broadcom.com>
2026-03-25 11:12:35 +01:00
LeeJiWon fc58d9e9d9 Reuse reactive CloudFoundry UAA URL across calls
Reactive SecurityService#getUaaUrl() creates a new Mono on each
invocation, so the resolved UAA URL is not reused across calls. During
token validation, this can lead to duplicate /info requests when token
keys are fetched and the issuer is validated in the same flow.

Cache the resolved UAA URL after a successful lookup and add regression
tests that verify reuse after success and retry after failure.

Signed-off-by: LeeJiWon <dlwldnjs1009@gmail.com>
2026-03-25 11:10:26 +01:00
Brian Clozel 1ead08b9d8 Merge branch '3.5.x' into 4.0.x
Closes gh-49646
2026-03-18 16:45:57 +01:00
Andy Wilkinson 7af147d091 Fix CloudFoundry actuator auto-config in absence of RestTemplateBuilder
Previously, CloudFoundryActuatorAutoConfiguration required
RestTemplateBuilder, using it to create the RestTemplate that's used
the security interceptor. Following the modularization,
RestTemplateBuilder is only present when spring-boot-restclient is on
the classpath. In its absence, CloudFoundryActuatorAutoConfiguration
would fail.

This commit address this problem by using RestClient.Builder (and
RestClient) instead of RestTemplateBuilder (and RestTemplate). This
allows CloudFoundryActuatorAutoConfiguration to work without
spring-boot-restclient as RestClient.Builder and RestClient are
provided by spring-web that will always be there in an MVC webapp.

Fixes gh-48826
2026-01-14 15:45:08 +00:00
Phillip Webb 72aea01732 Make spring-boot-security module optional from spring-boot-cloudfoundry
Fixes gh-48685
2026-01-06 13:36:31 -08:00
Phillip Webb c2e68c0911 Refactor security auto-configuration package structure
Refactor security auto-configuration package structure and classes to
create distinct web configurations.

Closes gh-14412
2025-10-16 14:10:08 -07:00
Phillip Webb 8f89bd304f Polish code to fix warnings 2025-10-14 21:51:25 -07:00
Phillip Webb 34e0382858 Move actuator heath code to spring-boot-health
Closes gh-46357
2025-10-14 21:51:24 -07:00
Phillip Webb 80de606c56 Refactor spring-boot-cloudfoundry package structure
Use package structure consistent with other modules.

Closes gh-47605
2025-10-13 18:37:16 -07:00
Phillip Webb 4587c82330 Start building against Spring Security 7.0.0-RC1 snapshots
See gh-47499
2025-10-13 15:13:00 -07:00
Moritz Halbritter 419d78b359 Add nullability annotations to tests in module/spring-boot-cloudfoundry
See gh-47263
2025-10-02 15:35:04 +02:00
Moritz Halbritter 05ba546a09 Improve null-safety of module/spring-boot-cloudfoundry
See gh-46926
2025-08-26 14:22:54 +02:00
Moritz Halbritter 9e63ff7005 Add more nullability annotations to module/spring-boot-cloudfoundry
See gh-46587
2025-08-07 10:48:44 +02:00
Moritz Halbritter 071f012d33 Add nullability annotations to module/spring-boot-cloudfoundry
See gh-46587
2025-07-30 10:40:17 +02:00
Moritz Halbritter c0f1f641ce Make auto-configurations final and remove public members
Closes gh-32883
2025-07-29 09:48:49 +02:00
Phillip Webb decc32dde3 Restructure project directories to better fit Gradle
Closes gh-46358
2025-07-10 17:54:08 -07:00