43 lines
1.5 KiB
Java
43 lines
1.5 KiB
Java
package com.baeldung.security;
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity;
|
|
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
|
|
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.core.userdetails.UserDetails;
|
|
import org.springframework.security.web.server.SecurityWebFilterChain;
|
|
|
|
@EnableWebFluxSecurity
|
|
@EnableReactiveMethodSecurity
|
|
public class SecurityConfig {
|
|
|
|
@Bean
|
|
public SecurityWebFilterChain securitygWebFilterChain(ServerHttpSecurity http) {
|
|
return http.authorizeExchange()
|
|
.pathMatchers("/admin").hasAuthority("ROLE_ADMIN")
|
|
.anyExchange().authenticated()
|
|
.and().formLogin()
|
|
.and().build();
|
|
}
|
|
|
|
@Bean
|
|
public MapReactiveUserDetailsService userDetailsService() {
|
|
UserDetails user = User.withDefaultPasswordEncoder()
|
|
.username("user")
|
|
.password("password")
|
|
.roles("USER")
|
|
.build();
|
|
|
|
UserDetails admin = User.withDefaultPasswordEncoder()
|
|
.username("admin")
|
|
.password("password")
|
|
.roles("ADMIN")
|
|
.build();
|
|
|
|
return new MapReactiveUserDetailsService(user, admin);
|
|
}
|
|
|
|
}
|