From 63059ffa288085946e85fa1df9ad82a94a39d103 Mon Sep 17 00:00:00 2001 From: German Osin Date: Wed, 25 Aug 2021 20:27:17 +0300 Subject: [PATCH] ISSUE-788 Added oauth2 security config (#822) --- .../kafka/ui/config/OAuthSecurityConfig.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/OAuthSecurityConfig.java diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/OAuthSecurityConfig.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/OAuthSecurityConfig.java new file mode 100644 index 0000000000..f28e96ed82 --- /dev/null +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/OAuthSecurityConfig.java @@ -0,0 +1,40 @@ +package com.provectus.kafka.ui.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; +import org.springframework.security.config.web.server.ServerHttpSecurity; +import org.springframework.security.web.server.SecurityWebFilterChain; + +@Configuration +@EnableWebFluxSecurity +@ConditionalOnProperty(value = "auth.enabled", havingValue = "true") +public class OAuthSecurityConfig { + + private static final String[] AUTH_WHITELIST = { + "/css/**", + "/js/**", + "/media/**", + "/resources/**", + "/actuator/health", + "/actuator/info", + "/login", + "/logout", + "/oauth2/**" + }; + + @Bean + public SecurityWebFilterChain configure(ServerHttpSecurity http) { + return http.authorizeExchange() + .pathMatchers(AUTH_WHITELIST).permitAll() + .anyExchange().authenticated() + .and() + .oauth2Login() + .and() + .csrf().disable() + .build(); + } + +} +