21
21
import java .util .Set ;
22
22
import java .util .stream .Collectors ;
23
23
24
- import org .jetbrains .annotations .NotNull ;
25
24
import org .reactivestreams .Publisher ;
26
25
import reactor .core .publisher .Flux ;
27
26
import reactor .core .publisher .Mono ;
54
53
/**
55
54
* GatewayFilter that modifies the response body.
56
55
*/
57
- public class ModifyResponseBodyGatewayFilterFactory extends
58
- AbstractGatewayFilterFactory <ModifyResponseBodyGatewayFilterFactory .Config > {
56
+ public class ModifyResponseBodyGatewayFilterFactory
57
+ extends AbstractGatewayFilterFactory <ModifyResponseBodyGatewayFilterFactory .Config > {
59
58
60
59
private final Map <String , MessageBodyDecoder > messageBodyDecoders ;
61
60
62
61
private final Map <String , MessageBodyEncoder > messageBodyEncoders ;
63
62
64
63
private final List <HttpMessageReader <?>> messageReaders ;
65
64
66
- public ModifyResponseBodyGatewayFilterFactory (
67
- List <HttpMessageReader <?>> messageReaders ,
68
- Set <MessageBodyDecoder > messageBodyDecoders ,
69
- Set <MessageBodyEncoder > messageBodyEncoders ) {
65
+ public ModifyResponseBodyGatewayFilterFactory (List <HttpMessageReader <?>> messageReaders ,
66
+ Set <MessageBodyDecoder > messageBodyDecoders , Set <MessageBodyEncoder > messageBodyEncoders ) {
70
67
super (Config .class );
71
68
this .messageReaders = messageReaders ;
72
69
this .messageBodyDecoders = messageBodyDecoders .stream ()
@@ -77,8 +74,7 @@ public ModifyResponseBodyGatewayFilterFactory(
77
74
78
75
@ Override
79
76
public GatewayFilter apply (Config config ) {
80
- ModifyResponseGatewayFilter gatewayFilter = new ModifyResponseGatewayFilter (
81
- config );
77
+ ModifyResponseGatewayFilter gatewayFilter = new ModifyResponseGatewayFilter (config );
82
78
gatewayFilter .setFactory (this );
83
79
return gatewayFilter ;
84
80
}
@@ -226,8 +222,7 @@ public ModifyResponseGatewayFilter(Config config) {
226
222
227
223
@ Override
228
224
public Mono <Void > filter (ServerWebExchange exchange , GatewayFilterChain chain ) {
229
- return chain .filter (exchange .mutate ()
230
- .response (new ModifiedServerHttpResponse (exchange , config )).build ());
225
+ return chain .filter (exchange .mutate ().response (new ModifiedServerHttpResponse (exchange , config )).build ());
231
226
}
232
227
233
228
@ Override
@@ -237,12 +232,11 @@ public int getOrder() {
237
232
238
233
@ Override
239
234
public String toString () {
240
- Object obj = (this .gatewayFilterFactory != null ) ? this .gatewayFilterFactory
241
- : this ;
242
- return filterToStringCreator (obj )
243
- .append ("New content type" , config .getNewContentType ())
244
- .append ("In class" , config .getInClass ())
245
- .append ("Out class" , config .getOutClass ()).toString ();
235
+ Object obj = (this .gatewayFilterFactory != null ) ? this .gatewayFilterFactory : this ;
236
+ return filterToStringCreator (obj ).append ("New content type" , config .getNewContentType ())
237
+ .append ("In class" , config .getInClass ())
238
+ .append ("Out class" , config .getOutClass ())
239
+ .toString ();
246
240
}
247
241
248
242
public void setFactory (GatewayFilterFactory <Config > gatewayFilterFactory ) {
@@ -348,7 +342,7 @@ public Mono<Void> writeAndFlushWith(
348
342
}));
349
343
}
350
344
351
- private @ NotNull HttpHeaders prepareHttpHeaders () {
345
+ private HttpHeaders prepareHttpHeaders () {
352
346
String originalResponseContentType = exchange
353
347
.getAttribute (ORIGINAL_RESPONSE_CONTENT_TYPE_ATTR );
354
348
HttpHeaders httpHeaders = new HttpHeaders ();
@@ -360,25 +354,20 @@ public Mono<Void> writeAndFlushWith(
360
354
return httpHeaders ;
361
355
}
362
356
363
- private ClientResponse prepareClientResponse (Publisher <? extends DataBuffer > body ,
364
- HttpHeaders httpHeaders ) {
357
+ private ClientResponse prepareClientResponse (Publisher <? extends DataBuffer > body , HttpHeaders httpHeaders ) {
365
358
ClientResponse .Builder builder ;
366
- builder = ClientResponse .create (exchange .getResponse ().getStatusCode (),
367
- messageReaders );
368
- return builder .headers (headers -> headers .putAll (httpHeaders ))
369
- .body (Flux .from (body )).build ();
359
+ builder = ClientResponse .create (exchange .getResponse ().getStatusCode (), messageReaders );
360
+ return builder .headers (headers -> headers .putAll (httpHeaders )).body (Flux .from (body )).build ();
370
361
}
371
362
372
- private <T > Mono <T > extractBody (ServerWebExchange exchange ,
373
- ClientResponse clientResponse , Class <T > inClass ) {
363
+ private <T > Mono <T > extractBody (ServerWebExchange exchange , ClientResponse clientResponse , Class <T > inClass ) {
374
364
// if inClass is byte[] then just return body, otherwise check if
375
365
// decoding required
376
366
if (byte [].class .isAssignableFrom (inClass )) {
377
367
return clientResponse .bodyToMono (inClass );
378
368
}
379
369
380
- List <String > encodingHeaders = exchange .getResponse ().getHeaders ()
381
- .getOrEmpty (HttpHeaders .CONTENT_ENCODING );
370
+ List <String > encodingHeaders = exchange .getResponse ().getHeaders ().getOrEmpty (HttpHeaders .CONTENT_ENCODING );
382
371
for (String encoding : encodingHeaders ) {
383
372
MessageBodyDecoder decoder = messageBodyDecoders .get (encoding );
384
373
if (decoder != null ) {
@@ -394,15 +383,14 @@ private <T> Mono<T> extractBody(ServerWebExchange exchange,
394
383
return clientResponse .bodyToMono (inClass );
395
384
}
396
385
397
- private Mono <DataBuffer > writeBody (ServerHttpResponse httpResponse ,
398
- CachedBodyOutputMessage message , Class <?> outClass ) {
386
+ private Mono <DataBuffer > writeBody (ServerHttpResponse httpResponse , CachedBodyOutputMessage message ,
387
+ Class <?> outClass ) {
399
388
Mono <DataBuffer > response = DataBufferUtils .join (message .getBody ());
400
389
if (byte [].class .isAssignableFrom (outClass )) {
401
390
return response ;
402
391
}
403
392
404
- List <String > encodingHeaders = httpResponse .getHeaders ()
405
- .getOrEmpty (HttpHeaders .CONTENT_ENCODING );
393
+ List <String > encodingHeaders = httpResponse .getHeaders ().getOrEmpty (HttpHeaders .CONTENT_ENCODING );
406
394
for (String encoding : encodingHeaders ) {
407
395
MessageBodyEncoder encoder = messageBodyEncoders .get (encoding );
408
396
if (encoder != null ) {
0 commit comments