From 46264f44625c9703492490c14dcd884fc65c02a0 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Tue, 15 Oct 2024 11:46:10 +0800 Subject: [PATCH] Eliminate deprecated method call to fix build error ``` > Task :spring-boot-project:spring-boot-actuator:compileJava /home/runner/work/spring-boot/spring-boot/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/reactive/AbstractWebFluxEndpointHandlerMapping.java:527: warning: [deprecation] check(Supplier,T) in AuthorityAuthorizationManager has been deprecated .check(this::getAuthentication, null) ^ where T is a type-variable: T extends Object declared in class AuthorityAuthorizationManager error: warnings found and -Werror specified 1 error 1 warning > Task :spring-boot-project:spring-boot-actuator:compileJava FAILED ``` Caused by changes at Spring Security side, see https://github.com/spring-projects/spring-security/commit/9ce5a76e8c2322a07f04923e8ce92d62cc7a8b0d#diff-8c62a1a24d0860e1da929cdb7cdbf50a8e7daa565fd03f05673299917891f33b --- .../reactive/AbstractWebFluxEndpointHandlerMapping.java | 7 ++++--- .../actuate/security/AuthorizationAuditListenerTests.java | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/reactive/AbstractWebFluxEndpointHandlerMapping.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/reactive/AbstractWebFluxEndpointHandlerMapping.java index 3cb0cf56e0a6..8162d33155c4 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/reactive/AbstractWebFluxEndpointHandlerMapping.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/reactive/AbstractWebFluxEndpointHandlerMapping.java @@ -57,6 +57,7 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.authorization.AuthorityAuthorizationManager; +import org.springframework.security.authorization.AuthorizationResult; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.ReactiveSecurityContextHolder; import org.springframework.util.AntPathMatcher; @@ -523,9 +524,9 @@ public Principal getPrincipal() { @Override public boolean isUserInRole(String role) { String authority = (!role.startsWith(ROLE_PREFIX)) ? ROLE_PREFIX + role : role; - return AuthorityAuthorizationManager.hasAuthority(authority) - .check(this::getAuthentication, null) - .isGranted(); + AuthorizationResult result = AuthorityAuthorizationManager.hasAuthority(authority) + .authorize(this::getAuthentication, null); + return result != null && result.isGranted(); } } diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/security/AuthorizationAuditListenerTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/security/AuthorizationAuditListenerTests.java index ca66cb891fbb..f641869a7ebd 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/security/AuthorizationAuditListenerTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/security/AuthorizationAuditListenerTests.java @@ -25,6 +25,7 @@ import org.springframework.context.ApplicationEventPublisher; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authorization.AuthorizationDecision; +import org.springframework.security.authorization.AuthorizationResult; import org.springframework.security.authorization.event.AuthorizationDeniedEvent; import org.springframework.security.authorization.event.AuthorizationEvent; @@ -48,7 +49,7 @@ void init() { @Test void authorizationDeniedEvent() { - AuthorizationDecision decision = new AuthorizationDecision(false); + AuthorizationResult decision = new AuthorizationDecision(false); UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("spring", "password"); authentication.setDetails("details"); @@ -62,7 +63,7 @@ void authorizationDeniedEvent() { @Test void authorizationDeniedEventWhenAuthenticationIsNotAvailable() { - AuthorizationDecision decision = new AuthorizationDecision(false); + AuthorizationResult decision = new AuthorizationDecision(false); UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("spring", "password"); authentication.setDetails("details"); @@ -77,7 +78,7 @@ void authorizationDeniedEventWhenAuthenticationIsNotAvailable() { @Test void authorizationDeniedEventWhenAuthenticationDoesNotHaveDetails() { - AuthorizationDecision decision = new AuthorizationDecision(false); + AuthorizationResult decision = new AuthorizationDecision(false); UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("spring", "password"); AuthorizationDeniedEvent authorizationEvent = new AuthorizationDeniedEvent<>(() -> authentication, "",