Skip to content

Commit

Permalink
Remove the cache since UniqueSecurityAnnotationScanner has cached ann…
Browse files Browse the repository at this point in the history
…otations internally
  • Loading branch information
kse-music authored and jzheaux committed Dec 4, 2024
1 parent 5329030 commit dc82a6e
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
package org.springframework.security.messaging.context;

import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.springframework.core.MethodParameter;
import org.springframework.expression.Expression;
Expand Down Expand Up @@ -95,8 +93,6 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
.getContextHolderStrategy();

private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();

private ExpressionParser parser = new SpelExpressionParser();

private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
Expand Down Expand Up @@ -164,8 +160,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
*/
@SuppressWarnings("unchecked")
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
return (T) this.cachedAttributes.computeIfAbsent(parameter,
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
return (T) this.scanner.scan(parameter.getParameter());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
package org.springframework.security.messaging.handler.invocation.reactive;

import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.reactivestreams.Publisher;
import reactor.core.publisher.Mono;
Expand Down Expand Up @@ -99,8 +97,6 @@
*/
public class AuthenticationPrincipalArgumentResolver implements HandlerMethodArgumentResolver {

private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();

private ExpressionParser parser = new SpelExpressionParser();

private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
Expand Down Expand Up @@ -205,8 +201,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
*/
@SuppressWarnings("unchecked")
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
return (T) this.cachedAttributes.computeIfAbsent(parameter,
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
return (T) this.scanner.scan(parameter.getParameter());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
package org.springframework.security.messaging.handler.invocation.reactive;

import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.reactivestreams.Publisher;
import reactor.core.publisher.Mono;
Expand Down Expand Up @@ -97,8 +95,6 @@
*/
public class CurrentSecurityContextArgumentResolver implements HandlerMethodArgumentResolver {

private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();

private ExpressionParser parser = new SpelExpressionParser();

private SecurityAnnotationScanner<CurrentSecurityContext> scanner = SecurityAnnotationScanners
Expand Down Expand Up @@ -222,8 +218,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
*/
@SuppressWarnings("unchecked")
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
return (T) this.cachedAttributes.computeIfAbsent(parameter,
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
return (T) this.scanner.scan(parameter.getParameter());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
package org.springframework.security.web.method.annotation;

import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.springframework.core.MethodParameter;
import org.springframework.expression.BeanResolver;
Expand Down Expand Up @@ -98,8 +96,6 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
.getContextHolderStrategy();

private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();

private ExpressionParser parser = new SpelExpressionParser();

private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
Expand Down Expand Up @@ -179,8 +175,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
*/
@SuppressWarnings("unchecked")
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
return (T) this.cachedAttributes.computeIfAbsent(parameter,
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
return (T) this.scanner.scan(parameter.getParameter());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
package org.springframework.security.web.method.annotation;

import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.springframework.core.MethodParameter;
import org.springframework.expression.BeanResolver;
Expand Down Expand Up @@ -84,8 +82,6 @@ public final class CurrentSecurityContextArgumentResolver implements HandlerMeth
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
.getContextHolderStrategy();

private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();

private ExpressionParser parser = new SpelExpressionParser();

private SecurityAnnotationScanner<CurrentSecurityContext> scanner = SecurityAnnotationScanners
Expand Down Expand Up @@ -177,8 +173,7 @@ private Object resolveSecurityContextFromAnnotation(MethodParameter parameter, C
*/
@SuppressWarnings("unchecked")
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
return (T) this.cachedAttributes.computeIfAbsent(parameter,
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
return (T) this.scanner.scan(parameter.getParameter());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
package org.springframework.security.web.reactive.result.method.annotation;

import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.reactivestreams.Publisher;
import reactor.core.publisher.Mono;
Expand Down Expand Up @@ -53,8 +51,6 @@
*/
public class AuthenticationPrincipalArgumentResolver extends HandlerMethodArgumentResolverSupport {

private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();

private ExpressionParser parser = new SpelExpressionParser();

private SecurityAnnotationScanner<AuthenticationPrincipal> scanner = SecurityAnnotationScanners
Expand Down Expand Up @@ -149,8 +145,7 @@ public void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDef
*/
@SuppressWarnings("unchecked")
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
return (T) this.cachedAttributes.computeIfAbsent(parameter,
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
return (T) this.scanner.scan(parameter.getParameter());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
package org.springframework.security.web.reactive.result.method.annotation;

import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.reactivestreams.Publisher;
import reactor.core.publisher.Mono;
Expand Down Expand Up @@ -53,8 +51,6 @@
*/
public class CurrentSecurityContextArgumentResolver extends HandlerMethodArgumentResolverSupport {

private final Map<MethodParameter, Annotation> cachedAttributes = new ConcurrentHashMap<>();

private ExpressionParser parser = new SpelExpressionParser();

private SecurityAnnotationScanner<CurrentSecurityContext> scanner = SecurityAnnotationScanners
Expand Down Expand Up @@ -189,8 +185,7 @@ private boolean isInvalidType(MethodParameter parameter, Object reactiveSecurity
*/
@SuppressWarnings("unchecked")
private <T extends Annotation> T findMethodAnnotation(MethodParameter parameter) {
return (T) this.cachedAttributes.computeIfAbsent(parameter,
(methodParameter) -> this.scanner.scan(methodParameter.getParameter()));
return (T) this.scanner.scan(parameter.getParameter());
}

}

0 comments on commit dc82a6e

Please sign in to comment.