Skip to content

Commit c527d91

Browse files
ngocnhan-tran1996jzheaux
authored andcommitted
Remove Deprecated AuthorizationDecision Elements
Closes gh-17299 Signed-off-by: Tran Ngoc Nhan <[email protected]>
1 parent ce10779 commit c527d91

File tree

81 files changed

+425
-872
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+425
-872
lines changed

config/src/main/java/org/springframework/security/config/method/PointcutDelegatingAuthorizationManager.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -36,19 +36,6 @@ class PointcutDelegatingAuthorizationManager implements AuthorizationManager<Met
3636
this.managers = managers;
3737
}
3838

39-
@Override
40-
public AuthorizationDecision check(Supplier<Authentication> authentication, MethodInvocation object) {
41-
AuthorizationResult result = authorize(authentication, object);
42-
if (result == null) {
43-
return null;
44-
}
45-
if (result instanceof AuthorizationDecision decision) {
46-
return decision;
47-
}
48-
throw new IllegalArgumentException(
49-
"Please either call authorize or ensure that the returned result is of type AuthorizationDecision");
50-
}
51-
5239
@Override
5340
public AuthorizationResult authorize(Supplier<Authentication> authentication, MethodInvocation object) {
5441
for (Map.Entry<Pointcut, AuthorizationManager<MethodInvocation>> entry : this.managers.entrySet()) {

config/src/main/java/org/springframework/security/config/websocket/WebSocketMessageBrokerSecurityBeanDefinitionParser.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -53,6 +53,7 @@
5353
import org.springframework.security.access.vote.ConsensusBased;
5454
import org.springframework.security.authorization.AuthorizationDecision;
5555
import org.springframework.security.authorization.AuthorizationManager;
56+
import org.springframework.security.authorization.AuthorizationResult;
5657
import org.springframework.security.config.Elements;
5758
import org.springframework.security.core.Authentication;
5859
import org.springframework.security.core.context.SecurityContextHolder;
@@ -463,7 +464,7 @@ private ExpressionBasedAuthorizationManager(
463464
}
464465

465466
@Override
466-
public AuthorizationDecision check(Supplier<Authentication> authentication,
467+
public AuthorizationResult authorize(Supplier<Authentication> authentication,
467468
MessageAuthorizationContext<?> object) {
468469
EvaluationContext context = this.expressionHandler.createEvaluationContext(authentication, object);
469470
boolean granted = ExpressionUtils.evaluateAsBoolean(this.expression, context);

config/src/test/java/org/springframework/security/config/annotation/method/configuration/PrePostMethodSecurityConfigurationTests.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393
import org.springframework.security.authorization.AuthorizationDecision;
9494
import org.springframework.security.authorization.AuthorizationEventPublisher;
9595
import org.springframework.security.authorization.AuthorizationManager;
96-
import org.springframework.security.authorization.AuthorizationResult;
9796
import org.springframework.security.authorization.SpringAuthorizationEventPublisher;
9897
import org.springframework.security.authorization.event.AuthorizationDeniedEvent;
9998
import org.springframework.security.authorization.method.AuthorizationAdvisor;
@@ -143,7 +142,6 @@
143142
import static org.mockito.ArgumentMatchers.any;
144143
import static org.mockito.Mockito.atLeastOnce;
145144
import static org.mockito.Mockito.clearInvocations;
146-
import static org.mockito.Mockito.doCallRealMethod;
147145
import static org.mockito.Mockito.mock;
148146
import static org.mockito.Mockito.never;
149147
import static org.mockito.Mockito.spy;
@@ -1555,8 +1553,6 @@ static class AuthorizationEventPublisherConfig {
15551553

15561554
@Bean
15571555
AuthorizationEventPublisher authorizationEventPublisher() {
1558-
doCallRealMethod().when(this.publisher)
1559-
.publishAuthorizationEvent(any(), any(), any(AuthorizationResult.class));
15601556
return this.publisher;
15611557
}
15621558

config/src/test/java/org/springframework/security/config/annotation/web/configurers/AuthorizeHttpRequestsConfigurerTests.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import org.springframework.security.authorization.AuthorizationEventPublisher;
4545
import org.springframework.security.authorization.AuthorizationManager;
4646
import org.springframework.security.authorization.AuthorizationObservationContext;
47-
import org.springframework.security.authorization.AuthorizationResult;
4847
import org.springframework.security.authorization.SpringAuthorizationEventPublisher;
4948
import org.springframework.security.authorization.event.AuthorizationDeniedEvent;
5049
import org.springframework.security.config.ObjectPostProcessor;
@@ -82,10 +81,8 @@
8281

8382
import static org.assertj.core.api.Assertions.assertThat;
8483
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
85-
import static org.mockito.BDDMockito.given;
8684
import static org.mockito.Mockito.any;
8785
import static org.mockito.Mockito.atLeastOnce;
88-
import static org.mockito.Mockito.doCallRealMethod;
8986
import static org.mockito.Mockito.mock;
9087
import static org.mockito.Mockito.spy;
9188
import static org.mockito.Mockito.verify;
@@ -151,20 +148,17 @@ public void configureWhenMvcMatcherAfterAnyRequestThenException() {
151148
@Test
152149
public void configureMvcMatcherAccessAuthorizationManagerWhenNotNullThenVerifyUse() throws Exception {
153150
CustomAuthorizationManagerConfig.authorizationManager = mock(AuthorizationManager.class);
154-
given(CustomAuthorizationManagerConfig.authorizationManager.authorize(any(), any())).willCallRealMethod();
155151
this.spring.register(CustomAuthorizationManagerConfig.class, BasicController.class).autowire();
156152
this.mvc.perform(get("/")).andExpect(status().isOk());
157-
verify(CustomAuthorizationManagerConfig.authorizationManager).check(any(), any());
153+
verify(CustomAuthorizationManagerConfig.authorizationManager).authorize(any(), any());
158154
}
159155

160156
@Test
161157
public void configureNoParameterMvcMatcherAccessAuthorizationManagerWhenNotNullThenVerifyUse() throws Exception {
162158
CustomAuthorizationManagerNoParameterConfig.authorizationManager = mock(AuthorizationManager.class);
163-
given(CustomAuthorizationManagerNoParameterConfig.authorizationManager.authorize(any(), any()))
164-
.willCallRealMethod();
165159
this.spring.register(CustomAuthorizationManagerNoParameterConfig.class, BasicController.class).autowire();
166160
this.mvc.perform(get("/")).andExpect(status().isOk());
167-
verify(CustomAuthorizationManagerNoParameterConfig.authorizationManager).check(any(), any());
161+
verify(CustomAuthorizationManagerNoParameterConfig.authorizationManager).authorize(any(), any());
168162
}
169163

170164
@Test
@@ -1273,8 +1267,6 @@ static class AuthorizationEventPublisherConfig {
12731267

12741268
@Bean
12751269
AuthorizationEventPublisher authorizationEventPublisher() {
1276-
doCallRealMethod().when(this.publisher)
1277-
.publishAuthorizationEvent(any(), any(), any(AuthorizationResult.class));
12781270
return this.publisher;
12791271
}
12801272

config/src/test/java/org/springframework/security/config/http/DefaultFilterChainValidatorTests.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -124,8 +124,7 @@ public void validateCheckLoginPageIsntProtectedThrowsIllegalArgumentException()
124124

125125
@Test
126126
public void validateCheckLoginPageAllowsAnonymous() {
127-
given(this.authorizationManager.check(any(), any())).willReturn(new AuthorizationDecision(false));
128-
given(this.authorizationManager.authorize(any(), any())).willCallRealMethod();
127+
given(this.authorizationManager.authorize(any(), any())).willReturn(new AuthorizationDecision(false));
129128
this.validator.validate(this.chainAuthorizationFilter);
130129
verify(this.logger).warn("Anonymous access to the login page doesn't appear to be enabled. "
131130
+ "This is almost certainly an error. Please check your configuration allows unauthenticated "

config/src/test/java/org/springframework/security/config/http/HttpConfigTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -90,14 +90,13 @@ public void getWhenUsingAuthorizationManagerThenRedirectsToLogin() throws Except
9090
this.spring.configLocations(this.xml("AuthorizationManager")).autowire();
9191
AuthorizationManager<HttpServletRequest> authorizationManager = this.spring.getContext()
9292
.getBean(AuthorizationManager.class);
93-
given(authorizationManager.check(any(), any())).willReturn(new AuthorizationDecision(false));
94-
given(authorizationManager.authorize(any(), any())).willCallRealMethod();
93+
given(authorizationManager.authorize(any(), any())).willReturn(new AuthorizationDecision(false));
9594
// @formatter:off
9695
this.mvc.perform(get("/"))
9796
.andExpect(status().isFound())
9897
.andExpect(redirectedUrl("http://localhost/login"));
9998
// @formatter:on
100-
verify(authorizationManager).check(any(), any());
99+
verify(authorizationManager).authorize(any(), any());
101100
}
102101

103102
@Test

config/src/test/java/org/springframework/security/config/method/InterceptMethodsBeanDefinitionDecoratorTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -168,10 +168,9 @@ public void transactionalAuthorizationManagerMethodsShouldBeSecured() {
168168

169169
@Test
170170
public void targetCustomAuthorizationManagerUsed() {
171-
given(this.mockAuthorizationManager.authorize(any(), any())).willCallRealMethod();
172-
given(this.mockAuthorizationManager.check(any(), any())).willReturn(new AuthorizationDecision(true));
171+
given(this.mockAuthorizationManager.authorize(any(), any())).willReturn(new AuthorizationDecision(true));
173172
this.targetCustomAuthorizationManager.doSomething();
174-
verify(this.mockAuthorizationManager).check(any(), any());
173+
verify(this.mockAuthorizationManager).authorize(any(), any());
175174
}
176175

177176
@Override

config/src/test/java/org/springframework/security/config/method/MethodSecurityBeanDefinitionParserTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -39,6 +39,7 @@
3939
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
4040
import org.springframework.security.authorization.AuthorizationDecision;
4141
import org.springframework.security.authorization.AuthorizationManager;
42+
import org.springframework.security.authorization.AuthorizationResult;
4243
import org.springframework.security.config.annotation.method.configuration.MethodSecurityService;
4344
import org.springframework.security.config.test.SpringTestContext;
4445
import org.springframework.security.config.test.SpringTestContextExtension;
@@ -463,7 +464,7 @@ public boolean hasPermission(Authentication authentication, Serializable targetI
463464
static class MyAuthorizationManager implements AuthorizationManager<MethodInvocation> {
464465

465466
@Override
466-
public AuthorizationDecision check(Supplier<Authentication> authentication, MethodInvocation object) {
467+
public AuthorizationResult authorize(Supplier<Authentication> authentication, MethodInvocation object) {
467468
return new AuthorizationDecision("bob".equals(authentication.get().getName()));
468469
}
469470

config/src/test/java/org/springframework/security/config/websocket/WebSocketMessageBrokerConfigTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -513,12 +513,11 @@ public void sendWhenCustomAuthorizationManagerThenAuthorizesAccordingly() {
513513
this.spring.configLocations(xml("CustomAuthorizationManagerConfig")).autowire();
514514
AuthorizationManager<Message<?>> authorizationManager = this.spring.getContext()
515515
.getBean(AuthorizationManager.class);
516-
given(authorizationManager.check(any(), any())).willReturn(new AuthorizationDecision(false));
517-
given(authorizationManager.authorize(any(), any())).willCallRealMethod();
516+
given(authorizationManager.authorize(any(), any())).willReturn(new AuthorizationDecision(false));
518517
Message<?> message = message("/any");
519518
assertThatExceptionOfType(Exception.class).isThrownBy(send(message))
520519
.withCauseInstanceOf(AccessDeniedException.class);
521-
verify(authorizationManager).check(any(), any());
520+
verify(authorizationManager).authorize(any(), any());
522521
}
523522

524523
private String xml(String configName) {

core/src/main/java/org/springframework/security/authorization/AuthenticatedAuthorizationManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -111,7 +111,7 @@ public static <T> AuthenticatedAuthorizationManager<T> anonymous() {
111111
* @return an {@link AuthorizationDecision}
112112
*/
113113
@Override
114-
public AuthorizationDecision check(Supplier<Authentication> authentication, T object) {
114+
public AuthorizationResult authorize(Supplier<Authentication> authentication, T object) {
115115
boolean granted = this.authorizationStrategy.isGranted(authentication.get());
116116
return new AuthorizationDecision(granted);
117117
}

0 commit comments

Comments
 (0)