Wiring in image ownership
Spring WebFlux's ServerWebExchange comes prepared for security by providing a getPrincipal() API that returns Mono<Principal>. While the default version, straight out of Spring Framework, supplies Mono.empty(), Spring Security automatically hooks in a filter to supply a real value via WebSessionSecurityContextRepository.
With Spring Security and Spring Session hooked into all our web calls, we can leverage this information every time a new image is uploaded.
First of all, we can adjust our Image domain object as follows:
@Data
@AllArgsConstructor
public class Image {
@Id private String id;
private String name;
private String owner;
} This last code is the same POJO that we've used throughout this book with one change:
- It now has a
String ownerproperty. This lets us associate an image with whoever uploaded it (which we'll see shortly).
Spring Security makes it possible to inject any Spring WebFlux controller with an authentication...