Merge branch '7.1.x'
This commit is contained in:
+1
-3
@@ -78,9 +78,7 @@ public abstract class AbstractSecurityExpressionHandler<T>
|
|||||||
public final EvaluationContext createEvaluationContext(@Nullable Authentication authentication, T invocation) {
|
public final EvaluationContext createEvaluationContext(@Nullable Authentication authentication, T invocation) {
|
||||||
SecurityExpressionOperations root = createSecurityExpressionRoot(authentication, invocation);
|
SecurityExpressionOperations root = createSecurityExpressionRoot(authentication, invocation);
|
||||||
StandardEvaluationContext ctx = createEvaluationContextInternal(authentication, invocation);
|
StandardEvaluationContext ctx = createEvaluationContextInternal(authentication, invocation);
|
||||||
if (this.beanResolver != null) {
|
ctx.setBeanResolver(this.beanResolver);
|
||||||
ctx.setBeanResolver(this.beanResolver);
|
|
||||||
}
|
|
||||||
ctx.setRootObject(root);
|
ctx.setRootObject(root);
|
||||||
return ctx;
|
return ctx;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-3
@@ -23,7 +23,6 @@ import java.util.Collection;
|
|||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@@ -89,13 +88,12 @@ public class DefaultMethodSecurityExpressionHandler extends AbstractSecurityExpr
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("NullAway") // FIXME: Dataflow analysis limitation
|
|
||||||
public EvaluationContext createEvaluationContext(Supplier<? extends @Nullable Authentication> authentication,
|
public EvaluationContext createEvaluationContext(Supplier<? extends @Nullable Authentication> authentication,
|
||||||
MethodInvocation mi) {
|
MethodInvocation mi) {
|
||||||
MethodSecurityExpressionOperations root = createSecurityExpressionRoot(authentication, mi);
|
MethodSecurityExpressionOperations root = createSecurityExpressionRoot(authentication, mi);
|
||||||
MethodSecurityEvaluationContext ctx = new MethodSecurityEvaluationContext(root, mi,
|
MethodSecurityEvaluationContext ctx = new MethodSecurityEvaluationContext(root, mi,
|
||||||
getParameterNameDiscoverer());
|
getParameterNameDiscoverer());
|
||||||
Optional.ofNullable(getBeanResolver()).ifPresent(ctx::setBeanResolver);
|
ctx.setBeanResolver(getBeanResolver());
|
||||||
return ctx;
|
return ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-6
@@ -20,7 +20,6 @@ import java.util.function.Supplier;
|
|||||||
|
|
||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|
||||||
import org.springframework.expression.BeanResolver;
|
|
||||||
import org.springframework.expression.EvaluationContext;
|
import org.springframework.expression.EvaluationContext;
|
||||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||||
import org.springframework.messaging.Message;
|
import org.springframework.messaging.Message;
|
||||||
@@ -47,11 +46,7 @@ public class DefaultMessageSecurityExpressionHandler<T> extends AbstractSecurity
|
|||||||
Message<T> message) {
|
Message<T> message) {
|
||||||
MessageSecurityExpressionRoot<T> root = createSecurityExpressionRoot(authentication, message);
|
MessageSecurityExpressionRoot<T> root = createSecurityExpressionRoot(authentication, message);
|
||||||
StandardEvaluationContext ctx = new StandardEvaluationContext(root);
|
StandardEvaluationContext ctx = new StandardEvaluationContext(root);
|
||||||
BeanResolver beanResolver = getBeanResolver();
|
ctx.setBeanResolver(getBeanResolver());
|
||||||
if (beanResolver != null) {
|
|
||||||
// https://github.com/spring-projects/spring-framework/issues/35371
|
|
||||||
ctx.setBeanResolver(beanResolver);
|
|
||||||
}
|
|
||||||
return ctx;
|
return ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-4
@@ -175,10 +175,7 @@ public class CurrentSecurityContextArgumentResolver implements HandlerMethodArgu
|
|||||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
context.setRootObject(securityContext);
|
context.setRootObject(securityContext);
|
||||||
context.setVariable("this", securityContext);
|
context.setVariable("this", securityContext);
|
||||||
if (this.beanResolver != null) {
|
context.setBeanResolver(this.beanResolver);
|
||||||
// https://github.com/spring-projects/spring-framework/issues/35371
|
|
||||||
context.setBeanResolver(this.beanResolver);
|
|
||||||
}
|
|
||||||
Expression expression = this.parser.parseExpression(expressionToParse);
|
Expression expression = this.parser.parseExpression(expressionToParse);
|
||||||
securityContext = expression.getValue(context);
|
securityContext = expression.getValue(context);
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -48,7 +48,6 @@ public class DefaultHttpSecurityExpressionHandler extends AbstractSecurityExpres
|
|||||||
private String defaultRolePrefix = DEFAULT_ROLE_PREFIX;
|
private String defaultRolePrefix = DEFAULT_ROLE_PREFIX;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("NullAway") // https://github.com/spring-projects/spring-framework/issues/35371
|
|
||||||
public EvaluationContext createEvaluationContext(Supplier<? extends @Nullable Authentication> authentication,
|
public EvaluationContext createEvaluationContext(Supplier<? extends @Nullable Authentication> authentication,
|
||||||
RequestAuthorizationContext context) {
|
RequestAuthorizationContext context) {
|
||||||
WebSecurityExpressionRoot root = createSecurityExpressionRoot(authentication, context);
|
WebSecurityExpressionRoot root = createSecurityExpressionRoot(authentication, context);
|
||||||
|
|||||||
+1
-4
@@ -126,10 +126,7 @@ public final class AuthenticationPrincipalArgumentResolver implements HandlerMet
|
|||||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
context.setRootObject(principal);
|
context.setRootObject(principal);
|
||||||
context.setVariable("this", principal);
|
context.setVariable("this", principal);
|
||||||
// https://github.com/spring-projects/spring-framework/issues/35371
|
context.setBeanResolver(this.beanResolver);
|
||||||
if (this.beanResolver != null) {
|
|
||||||
context.setBeanResolver(this.beanResolver);
|
|
||||||
}
|
|
||||||
Expression expression = this.parser.parseExpression(expressionToParse);
|
Expression expression = this.parser.parseExpression(expressionToParse);
|
||||||
principal = expression.getValue(context);
|
principal = expression.getValue(context);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-4
@@ -160,10 +160,7 @@ public final class CurrentSecurityContextArgumentResolver implements HandlerMeth
|
|||||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
context.setRootObject(securityContext);
|
context.setRootObject(securityContext);
|
||||||
context.setVariable("this", securityContext);
|
context.setVariable("this", securityContext);
|
||||||
// https://github.com/spring-projects/spring-framework/issues/35371
|
context.setBeanResolver(this.beanResolver);
|
||||||
if (this.beanResolver != null) {
|
|
||||||
context.setBeanResolver(this.beanResolver);
|
|
||||||
}
|
|
||||||
Expression expression = this.parser.parseExpression(expressionToParse);
|
Expression expression = this.parser.parseExpression(expressionToParse);
|
||||||
securityContextResult = expression.getValue(context);
|
securityContextResult = expression.getValue(context);
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -95,7 +95,6 @@ public class AuthenticationPrincipalArgumentResolver extends HandlerMethodArgume
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("NullAway") // https://github.com/spring-projects/spring-framework/issues/35371
|
|
||||||
private @Nullable Object resolvePrincipal(MethodParameter parameter, @Nullable Object principal) {
|
private @Nullable Object resolvePrincipal(MethodParameter parameter, @Nullable Object principal) {
|
||||||
AuthenticationPrincipal annotation = findMethodAnnotation(parameter);
|
AuthenticationPrincipal annotation = findMethodAnnotation(parameter);
|
||||||
if (annotation == null) {
|
if (annotation == null) {
|
||||||
|
|||||||
-1
@@ -141,7 +141,6 @@ public class CurrentSecurityContextArgumentResolver extends HandlerMethodArgumen
|
|||||||
return securityContext;
|
return securityContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("NullAway") // https://github.com/spring-projects/spring-framework/issues/35371
|
|
||||||
private @Nullable Object resolveSecurityContextFromAnnotation(CurrentSecurityContext annotation,
|
private @Nullable Object resolveSecurityContextFromAnnotation(CurrentSecurityContext annotation,
|
||||||
MethodParameter parameter, Object securityContext) {
|
MethodParameter parameter, Object securityContext) {
|
||||||
Object securityContextResult = securityContext;
|
Object securityContextResult = securityContext;
|
||||||
|
|||||||
Reference in New Issue
Block a user