Expose Principal in ServerRequest

This commit exposes the Principal in ServerRequest.

Issue: SPR-15552
This commit is contained in:
Arjen Poutsma
2017-05-16 14:50:57 +02:00
parent 94efbe2687
commit ba39697f2e
5 changed files with 46 additions and 3 deletions

View File

@@ -19,6 +19,7 @@ package org.springframework.web.reactive.function.server;
import java.net.InetSocketAddress;
import java.net.URI;
import java.nio.charset.Charset;
import java.security.Principal;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
@@ -66,11 +67,12 @@ public class MockServerRequest implements ServerRequest {
private final WebSession session;
private Principal principal;
private MockServerRequest(HttpMethod method, URI uri,
MockHeaders headers, Object body, Map<String, Object> attributes,
MultiValueMap<String, String> queryParams,
Map<String, String> pathVariables, WebSession session) {
Map<String, String> pathVariables, WebSession session, Principal principal) {
this.method = method;
this.uri = uri;
@@ -80,6 +82,7 @@ public class MockServerRequest implements ServerRequest {
this.queryParams = queryParams;
this.pathVariables = pathVariables;
this.session = session;
this.principal = principal;
}
@@ -148,6 +151,10 @@ public class MockServerRequest implements ServerRequest {
return Mono.justOrEmpty(this.session);
}
@Override
public Mono<? extends Principal> principal() {
return Mono.justOrEmpty(this.principal);
}
public static Builder builder() {
return new BuilderImpl();
@@ -178,6 +185,8 @@ public class MockServerRequest implements ServerRequest {
Builder session(WebSession session);
Builder session(Principal principal);
MockServerRequest body(Object body);
MockServerRequest build();
@@ -202,6 +211,8 @@ public class MockServerRequest implements ServerRequest {
private WebSession session;
private Principal principal;
@Override
public Builder method(HttpMethod method) {
Assert.notNull(method, "'method' must not be null");
@@ -283,17 +294,26 @@ public class MockServerRequest implements ServerRequest {
return this;
}
@Override
public Builder session(Principal principal) {
Assert.notNull(principal, "'principal' must not be null");
this.principal = principal;
return this;
}
@Override
public MockServerRequest body(Object body) {
this.body = body;
return new MockServerRequest(this.method, this.uri, this.headers, this.body,
this.attributes, this.queryParams, this.pathVariables, this.session);
this.attributes, this.queryParams, this.pathVariables, this.session,
this.principal);
}
@Override
public MockServerRequest build() {
return new MockServerRequest(this.method, this.uri, this.headers, null,
this.attributes, this.queryParams, this.pathVariables, this.session);
this.attributes, this.queryParams, this.pathVariables, this.session,
this.principal);
}
}