ソースを参照

Inmemory custom users

Daniel Garcia Costa 1 年間 前
コミット
05cd401b13
1 ファイル変更52 行追加0 行削除
  1. 52 0
      src/main/java/es/uv/garcosda/config/WebConfigSecurity.java

+ 52 - 0
src/main/java/es/uv/garcosda/config/WebConfigSecurity.java

@@ -0,0 +1,52 @@
+package es.uv.garcosda.config;
+
+import java.util.Arrays;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+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.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.web.server.SecurityWebFilterChain;
+
+@EnableReactiveMethodSecurity
+@EnableWebFluxSecurity
+@Configuration
+public class WebConfigSecurity {
+
+	@Bean
+    public PasswordEncoder passwordEncoder() {
+        return new BCryptPasswordEncoder();
+    }
+	
+	@Bean
+	public MapReactiveUserDetailsService userDetailsService() {
+		return new MapReactiveUserDetailsService(Arrays.asList(
+        		User.withUsername("user")
+					.password(passwordEncoder().encode("1234"))
+					.roles("USER")
+					.build(),
+				User.withUsername("admin")
+					.password(passwordEncoder().encode("1234"))
+					.roles("USER")
+					.build()));
+	}
+		
+	@Bean
+	public SecurityWebFilterChain securityFilterChain(ServerHttpSecurity http) {
+		return http.csrf().disable()
+				   .formLogin().disable()
+				   .logout().disable()
+				   .authorizeExchange(exchanges -> exchanges
+				       .anyExchange().authenticated()
+				   )
+				   .httpBasic()
+				   .and()
+				   .build();
+	}
+	
+}