diff --git a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java index a857232d44..2c83e97902 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java +++ b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolver.java @@ -125,11 +125,15 @@ public class AuthenticationPrincipalArgumentResolver implements HandlerMethodArg @Override public Mono resolveArgument(MethodParameter parameter, Message message) { ReactiveAdapter adapter = this.adapterRegistry.getAdapter(parameter.getParameterType()); - return ReactiveSecurityContextHolder.getContext().map(SecurityContext::getAuthentication).flatMap((a) -> { - Object p = resolvePrincipal(parameter, a.getPrincipal()); - Mono principal = Mono.justOrEmpty(p); - return (adapter != null) ? Mono.just(adapter.fromPublisher(principal)) : principal; - }); + // @formatter:off + return ReactiveSecurityContextHolder.getContext() + .map(SecurityContext::getAuthentication) + .flatMap((a) -> { + Object p = resolvePrincipal(parameter, a.getPrincipal()); + Mono principal = Mono.justOrEmpty(p); + return (adapter != null) ? Mono.just(adapter.fromPublisher(principal)) : principal; + }); + // @formatter:on } private Object resolvePrincipal(MethodParameter parameter, Object principal) { diff --git a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java index 89491d2b17..3b67e85a43 100644 --- a/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java +++ b/messaging/src/main/java/org/springframework/security/messaging/handler/invocation/reactive/CurrentSecurityContextArgumentResolver.java @@ -124,11 +124,14 @@ public class CurrentSecurityContextArgumentResolver implements HandlerMethodArgu @Override public Mono resolveArgument(MethodParameter parameter, Message message) { ReactiveAdapter adapter = this.adapterRegistry.getAdapter(parameter.getParameterType()); - return ReactiveSecurityContextHolder.getContext().flatMap((securityContext) -> { - Object sc = resolveSecurityContext(parameter, securityContext); - Mono result = Mono.justOrEmpty(sc); - return (adapter != null) ? Mono.just(adapter.fromPublisher(result)) : result; - }); + // @formatter:off + return ReactiveSecurityContextHolder.getContext() + .flatMap((securityContext) -> { + Object sc = resolveSecurityContext(parameter, securityContext); + Mono result = Mono.justOrEmpty(sc); + return (adapter != null) ? Mono.just(adapter.fromPublisher(result)) : result; + }); + // @formatter:on } private Object resolveSecurityContext(MethodParameter parameter, Object securityContext) { diff --git a/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java b/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java index 27918fa51a..5a12f89ea9 100644 --- a/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java +++ b/messaging/src/test/java/org/springframework/security/messaging/access/expression/MessageExpressionConfigAttributeTests.java @@ -80,8 +80,11 @@ public class MessageExpressionConfigAttributeTests { @Test public void postProcessContext() { SimpDestinationMessageMatcher matcher = new SimpDestinationMessageMatcher("/topics/{topic}/**"); + // @formatter:off Message message = MessageBuilder.withPayload("M") - .setHeader(SimpMessageHeaderAccessor.DESTINATION_HEADER, "/topics/someTopic/sub1").build(); + .setHeader(SimpMessageHeaderAccessor.DESTINATION_HEADER, "/topics/someTopic/sub1") + .build(); + // @formatter:on EvaluationContext context = mock(EvaluationContext.class); this.attribute = new MessageExpressionConfigAttribute(this.expression, matcher); this.attribute.postProcess(context, message); diff --git a/messaging/src/test/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolverTests.java b/messaging/src/test/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolverTests.java index 9032d1b8ee..ebc7fe9514 100644 --- a/messaging/src/test/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolverTests.java +++ b/messaging/src/test/java/org/springframework/security/messaging/handler/invocation/reactive/AuthenticationPrincipalArgumentResolverTests.java @@ -54,9 +54,12 @@ public class AuthenticationPrincipalArgumentResolverTests { @Test public void resolveArgumentWhenAuthenticationPrincipalThenFound() { Authentication authentication = TestAuthentication.authenticatedUser(); + // @formatter:off Mono result = (Mono) this.resolver .resolveArgument(arg0("authenticationPrincipalOnMonoUserDetails"), null) - .subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication)).block(); + .subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication)) + .block(); + // @formatter:on assertThat(result.block()).isEqualTo(authentication.getPrincipal()); } @@ -72,9 +75,12 @@ public class AuthenticationPrincipalArgumentResolverTests { @Test public void resolveArgumentWhenMonoAndAuthenticationPrincipalThenFound() { Authentication authentication = TestAuthentication.authenticatedUser(); + // @formatter:off Mono result = (Mono) this.resolver .resolveArgument(arg0("currentUserOnMonoUserDetails"), null) - .subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication)).block(); + .subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication)) + .block(); + // @formatter:on assertThat(result.block()).isEqualTo(authentication.getPrincipal()); } @@ -85,9 +91,12 @@ public class AuthenticationPrincipalArgumentResolverTests { @Test public void resolveArgumentWhenExpressionThenFound() { Authentication authentication = TestAuthentication.authenticatedUser(); + // @formatter:off Mono result = (Mono) this.resolver .resolveArgument(arg0("authenticationPrincipalExpression"), null) - .subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication)).block(); + .subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication)) + .block(); + // @formatter:on assertThat(result.block()).isEqualTo(authentication.getName()); } diff --git a/messaging/src/test/java/org/springframework/security/messaging/util/matcher/SimpMessageTypeMatcherTests.java b/messaging/src/test/java/org/springframework/security/messaging/util/matcher/SimpMessageTypeMatcherTests.java index c6f6b72b7d..1f7f9c562c 100644 --- a/messaging/src/test/java/org/springframework/security/messaging/util/matcher/SimpMessageTypeMatcherTests.java +++ b/messaging/src/test/java/org/springframework/security/messaging/util/matcher/SimpMessageTypeMatcherTests.java @@ -42,15 +42,21 @@ public class SimpMessageTypeMatcherTests { @Test public void matchesMessageMessageTrue() { + // @formatter:off Message message = MessageBuilder.withPayload("Hi") - .setHeader(SimpMessageHeaderAccessor.MESSAGE_TYPE_HEADER, SimpMessageType.MESSAGE).build(); + .setHeader(SimpMessageHeaderAccessor.MESSAGE_TYPE_HEADER, SimpMessageType.MESSAGE) + .build(); + // @formatter:on assertThat(this.matcher.matches(message)).isTrue(); } @Test public void matchesMessageConnectFalse() { + // @formatter:off Message message = MessageBuilder.withPayload("Hi") - .setHeader(SimpMessageHeaderAccessor.MESSAGE_TYPE_HEADER, SimpMessageType.CONNECT).build(); + .setHeader(SimpMessageHeaderAccessor.MESSAGE_TYPE_HEADER, SimpMessageType.CONNECT) + .build(); + // @formatter:on assertThat(this.matcher.matches(message)).isFalse(); }