BAEL-2713 Serve Static Content in Spring WebFlux (#6404)
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
package com.baeldung.staticcontent;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.security.config.web.server.ServerHttpSecurity;
|
||||
import org.springframework.security.web.server.SecurityWebFilterChain;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
@SpringBootApplication
|
||||
public class StaticContentApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication app = new SpringApplication(StaticContentApplication.class);
|
||||
app.setDefaultProperties(Collections.singletonMap("server.port", "8084"));
|
||||
app.run(args);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SecurityWebFilterChain staticContentSpringSecurityFilterChain(ServerHttpSecurity http) {
|
||||
http.authorizeExchange()
|
||||
.anyExchange()
|
||||
.permitAll();
|
||||
return http.build();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.baeldung.staticcontent;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.reactive.function.server.RouterFunction;
|
||||
import org.springframework.web.reactive.function.server.RouterFunctions;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
|
||||
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
|
||||
import static org.springframework.web.reactive.function.server.ServerResponse.ok;
|
||||
|
||||
@Configuration
|
||||
public class StaticContentConfig {
|
||||
|
||||
@Bean
|
||||
public RouterFunction<ServerResponse> htmlRouter(@Value("classpath:/public/index.html") Resource html) {
|
||||
return route(
|
||||
GET("/"),
|
||||
request -> ok()
|
||||
.contentType(MediaType.TEXT_HTML)
|
||||
.syncBody(html)
|
||||
);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RouterFunction<ServerResponse> imgRouter() {
|
||||
return RouterFunctions.resources("/img/**", new ClassPathResource("img/"));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user