Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.security;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.context.annotation.Bean;
- import org.springframework.security.authentication.ReactiveAuthenticationManager;
- import org.springframework.security.config.web.server.ServerHttpSecurity;
- import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
- import org.springframework.security.core.userdetails.User;
- import org.springframework.security.web.server.SecurityWebFilterChain;
- import org.springframework.web.reactive.function.server.HandlerFunction;
- import org.springframework.web.reactive.function.server.RouterFunction;
- import org.springframework.web.reactive.function.server.ServerRequest;
- import org.springframework.web.reactive.function.server.ServerResponse;
- import reactor.core.publisher.Mono;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.Map;
- import static org.springframework.web.reactive.function.server.RouterFunctions.route;
- import static org.springframework.web.reactive.function.server.ServerResponse.*;
- @SpringBootApplication
- public class SecurityApplication {
- private final static String GREETING_RESOURCE = "/greeting";
- @Bean
- RouterFunction<ServerResponse> routes() {
- return route()
- .GET(GREETING_RESOURCE, r -> ok().body(Collections.singletonMap("greeting", "Hello world!")))
- .build();
- }
- @Bean
- MapReactiveUserDetailsService userDetailsService() {
- return new MapReactiveUserDetailsService(User.withDefaultPasswordEncoder().username("jlong").password("pw").roles("USER").build());
- }
- @Bean
- SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
- return http
- .httpBasic()
- .and()
- .authorizeExchange(spec -> spec
- .pathMatchers(GREETING_RESOURCE).authenticated()
- .anyExchange().permitAll()
- )
- .csrf(ServerHttpSecurity.CsrfSpec::disable)
- .build();
- }
- public static void main(String[] args) {
- SpringApplication.run(SecurityApplication.class, args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement