Browse Source

Polish "Add principal resolution in RSocket handler methods"

See gh-28444
pull/29200/head
Stephane Nicoll 4 years ago
parent
commit
c943ef18ca
  1. 2
      spring-boot-project/spring-boot-autoconfigure/build.gradle
  2. 2
      spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/rsocket/RSocketSecurityAutoConfiguration.java
  3. 17
      spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/rsocket/RSocketSecurityAutoConfigurationTests.java

2
spring-boot-project/spring-boot-autoconfigure/build.gradle

@ -194,11 +194,11 @@ dependencies { @@ -194,11 +194,11 @@ dependencies {
optional("org.springframework.security:spring-security-data") {
exclude group: "javax.xml.bind", module: "jaxb-api"
}
optional("org.springframework.security:spring-security-messaging")
optional("org.springframework.security:spring-security-oauth2-client")
optional("org.springframework.security:spring-security-oauth2-jose")
optional("org.springframework.security:spring-security-oauth2-resource-server")
optional("org.springframework.security:spring-security-rsocket")
optional("org.springframework.security:spring-security-messaging")
optional("org.springframework.security:spring-security-saml2-service-provider")
optional("org.springframework.security:spring-security-web")
optional("org.springframework.session:spring-session-core")

2
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/rsocket/RSocketSecurityAutoConfiguration.java

@ -50,7 +50,7 @@ public class RSocketSecurityAutoConfiguration { @@ -50,7 +50,7 @@ public class RSocketSecurityAutoConfiguration {
static class RSocketSecurityMessageHandlerConfiguration {
@Bean
RSocketMessageHandlerCustomizer springSecurityRSocketMessageHandler() {
RSocketMessageHandlerCustomizer rSocketAuthenticationPrincipalMessageHandlerCustomizer() {
return (messageHandler) -> messageHandler.getArgumentResolverConfigurer()
.addCustomResolver(new AuthenticationPrincipalArgumentResolver());
}

17
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/rsocket/RSocketSecurityAutoConfigurationTests.java

@ -16,20 +16,16 @@ @@ -16,20 +16,16 @@
package org.springframework.boot.autoconfigure.security.rsocket;
import java.util.List;
import io.rsocket.core.RSocketServer;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.rsocket.RSocketMessageHandlerCustomizer;
import org.springframework.boot.autoconfigure.rsocket.RSocketMessagingAutoConfiguration;
import org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration;
import org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration;
import org.springframework.boot.rsocket.server.RSocketServerCustomizer;
import org.springframework.boot.test.context.FilteredClassLoader;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver;
import org.springframework.messaging.rsocket.annotation.support.RSocketMessageHandler;
import org.springframework.security.config.annotation.rsocket.RSocketSecurity;
import org.springframework.security.messaging.handler.invocation.reactive.AuthenticationPrincipalArgumentResolver;
@ -76,16 +72,11 @@ class RSocketSecurityAutoConfigurationTests { @@ -76,16 +72,11 @@ class RSocketSecurityAutoConfigurationTests {
}
@Test
void autoConfigurationAddsCustomizerForMessageHandlerRSocketFactory() {
RSocketMessageHandler handler = new RSocketMessageHandler();
void autoConfigurationAddsCustomizerForAuthenticationPrincipalArgumentResolver() {
this.contextRunner.run((context) -> {
RSocketMessageHandlerCustomizer customizer = context.getBean(RSocketMessageHandlerCustomizer.class);
customizer.customize(handler);
List<HandlerMethodArgumentResolver> customResolvers = handler.getArgumentResolverConfigurer()
.getCustomResolvers();
assertThat(customResolvers).isNotEmpty();
assertThat(customResolvers)
assertThat(context).hasSingleBean(RSocketMessageHandler.class);
RSocketMessageHandler handler = context.getBean(RSocketMessageHandler.class);
assertThat(handler.getArgumentResolverConfigurer().getCustomResolvers()).isNotEmpty()
.anyMatch((customResolver) -> customResolver instanceof AuthenticationPrincipalArgumentResolver);
});
}

Loading…
Cancel
Save