Skip to content

Commit dc82a6e

Browse files
kse-musicjzheaux
authored andcommitted
Remove the cache since UniqueSecurityAnnotationScanner has cached annotations internally
1 parent 5329030 commit dc82a6e

File tree

7 files changed

+7
-42
lines changed

7 files changed

+7
-42
lines changed

messaging/src/main/java/org/springframework/security/messaging/context/AuthenticationPrincipalArgumentResolver.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.security.messaging.context;
1818

1919
import java.lang.annotation.Annotation;
20-
import java.util.Map;
21-
import java.util.concurrent.ConcurrentHashMap;
2220

2321
import org.springframework.core.MethodParameter;
2422
import org.springframework.expression.Expression;
@@ -95,8 +93,6 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet
9593
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
9694
.getContextHolderStrategy();
9795

98-
private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();
99-
10096
private ExpressionParser parser = new SpelExpressionParser();
10197

10298
private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
@@ -164,8 +160,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
164160
*/
165161
@SuppressWarnings("unchecked")
166162
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
167-
return (T) this.cachedAttributes.computeIfAbsent(parameter,
168-
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
163+
return (T) this.scanner.scan(parameter.getParameter());
169164
}
170165

171166
}

messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.security.messaging.handler.invocation.reactive;
1818

1919
import java.lang.annotation.Annotation;
20-
import java.util.Map;
21-
import java.util.concurrent.ConcurrentHashMap;
2220

2321
import org.reactivestreams.Publisher;
2422
import reactor.core.publisher.Mono;
@@ -99,8 +97,6 @@
9997
*/
10098
public class AuthenticationPrincipalArgumentResolver implements HandlerMethodArgumentResolver {
10199

102-
private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();
103-
104100
private ExpressionParser parser = new SpelExpressionParser();
105101

106102
private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
@@ -205,8 +201,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
205201
*/
206202
@SuppressWarnings("unchecked")
207203
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
208-
return (T) this.cachedAttributes.computeIfAbsent(parameter,
209-
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
204+
return (T) this.scanner.scan(parameter.getParameter());
210205
}
211206

212207
}

messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.security.messaging.handler.invocation.reactive;
1818

1919
import java.lang.annotation.Annotation;
20-
import java.util.Map;
21-
import java.util.concurrent.ConcurrentHashMap;
2220

2321
import org.reactivestreams.Publisher;
2422
import reactor.core.publisher.Mono;
@@ -97,8 +95,6 @@
9795
*/
9896
public class CurrentSecurityContextArgumentResolver implements HandlerMethodArgumentResolver {
9997

100-
private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();
101-
10298
private ExpressionParser parser = new SpelExpressionParser();
10399

104100
private SecurityAnnotationScanner<CurrentSecurityContext> scanner = SecurityAnnotationScanners
@@ -222,8 +218,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
222218
*/
223219
@SuppressWarnings("unchecked")
224220
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
225-
return (T) this.cachedAttributes.computeIfAbsent(parameter,
226-
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
221+
return (T) this.scanner.scan(parameter.getParameter());
227222
}
228223

229224
}

web/src/main/java/org/springframework/security/web/method/annotation/AuthenticationPrincipalArgumentResolver.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.security.web.method.annotation;
1818

1919
import java.lang.annotation.Annotation;
20-
import java.util.Map;
21-
import java.util.concurrent.ConcurrentHashMap;
2220

2321
import org.springframework.core.MethodParameter;
2422
import org.springframework.expression.BeanResolver;
@@ -98,8 +96,6 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet
9896
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
9997
.getContextHolderStrategy();
10098

101-
private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();
102-
10399
private ExpressionParser parser = new SpelExpressionParser();
104100

105101
private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
@@ -179,8 +175,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
179175
*/
180176
@SuppressWarnings("unchecked")
181177
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
182-
return (T) this.cachedAttributes.computeIfAbsent(parameter,
183-
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
178+
return (T) this.scanner.scan(parameter.getParameter());
184179
}
185180

186181
}

web/src/main/java/org/springframework/security/web/method/annotation/CurrentSecurityContextArgumentResolver.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.security.web.method.annotation;
1818

1919
import java.lang.annotation.Annotation;
20-
import java.util.Map;
21-
import java.util.concurrent.ConcurrentHashMap;
2220

2321
import org.springframework.core.MethodParameter;
2422
import org.springframework.expression.BeanResolver;
@@ -84,8 +82,6 @@ public final class CurrentSecurityContextArgumentResolver implements HandlerMeth
8482
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
8583
.getContextHolderStrategy();
8684

87-
private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();
88-
8985
private ExpressionParser parser = new SpelExpressionParser();
9086

9187
private SecurityAnnotationScanner<CurrentSecurityContext> scanner = SecurityAnnotationScanners
@@ -177,8 +173,7 @@ private Object resolveSecurityContextFromAnnotation(MethodParameter parameter, C
177173
*/
178174
@SuppressWarnings("unchecked")
179175
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
180-
return (T) this.cachedAttributes.computeIfAbsent(parameter,
181-
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
176+
return (T) this.scanner.scan(parameter.getParameter());
182177
}
183178

184179
}

web/src/main/java/org/springframework/security/web/reactive/result/method/annotation/AuthenticationPrincipalArgumentResolver.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.security.web.reactive.result.method.annotation;
1818

1919
import java.lang.annotation.Annotation;
20-
import java.util.Map;
21-
import java.util.concurrent.ConcurrentHashMap;
2220

2321
import org.reactivestreams.Publisher;
2422
import reactor.core.publisher.Mono;
@@ -53,8 +51,6 @@
5351
*/
5452
public class AuthenticationPrincipalArgumentResolver extends HandlerMethodArgumentResolverSupport {
5553

56-
private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();
57-
5854
private ExpressionParser parser = new SpelExpressionParser();
5955

6056
private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
@@ -149,8 +145,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
149145
*/
150146
@SuppressWarnings("unchecked")
151147
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
152-
return (T) this.cachedAttributes.computeIfAbsent(parameter,
153-
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
148+
return (T) this.scanner.scan(parameter.getParameter());
154149
}
155150

156151
}

web/src/main/java/org/springframework/security/web/reactive/result/method/annotation/CurrentSecurityContextArgumentResolver.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.security.web.reactive.result.method.annotation;
1818

1919
import java.lang.annotation.Annotation;
20-
import java.util.Map;
21-
import java.util.concurrent.ConcurrentHashMap;
2220

2321
import org.reactivestreams.Publisher;
2422
import reactor.core.publisher.Mono;
@@ -53,8 +51,6 @@
5351
*/
5452
public class CurrentSecurityContextArgumentResolver extends HandlerMethodArgumentResolverSupport {
5553

56-
private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();
57-
5854
private ExpressionParser parser = new SpelExpressionParser();
5955

6056
private SecurityAnnotationScanner<CurrentSecurityContext> scanner = SecurityAnnotationScanners
@@ -189,8 +185,7 @@ private boolean isInvalidType(MethodParameter parameter, Object reactiveSecurity
189185
*/
190186
@SuppressWarnings("unchecked")
191187
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
192-
return (T) this.cachedAttributes.computeIfAbsent(parameter,
193-
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
188+
return (T) this.scanner.scan(parameter.getParameter());
194189
}
195190

196191
}

0 commit comments

Comments
 (0)