|
@@ -6,7 +6,6 @@ import static com.provectus.kafka.ui.service.MessagesService.createProducer;
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
import com.provectus.kafka.ui.config.ClustersProperties;
|
|
import com.provectus.kafka.ui.config.ClustersProperties;
|
|
import com.provectus.kafka.ui.config.auth.AuthenticatedUser;
|
|
import com.provectus.kafka.ui.config.auth.AuthenticatedUser;
|
|
-import com.provectus.kafka.ui.config.auth.RbacUser;
|
|
|
|
import com.provectus.kafka.ui.model.KafkaCluster;
|
|
import com.provectus.kafka.ui.model.KafkaCluster;
|
|
import com.provectus.kafka.ui.model.rbac.AccessContext;
|
|
import com.provectus.kafka.ui.model.rbac.AccessContext;
|
|
import com.provectus.kafka.ui.service.AdminClientService;
|
|
import com.provectus.kafka.ui.service.AdminClientService;
|
|
@@ -21,6 +20,7 @@ import java.util.Optional;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.function.Supplier;
|
|
import java.util.function.Supplier;
|
|
|
|
+import java.util.stream.Collectors;
|
|
import javax.annotation.Nullable;
|
|
import javax.annotation.Nullable;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.kafka.clients.producer.KafkaProducer;
|
|
import org.apache.kafka.clients.producer.KafkaProducer;
|
|
@@ -28,7 +28,9 @@ import org.apache.kafka.clients.producer.ProducerConfig;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.security.core.GrantedAuthority;
|
|
import org.springframework.security.core.context.SecurityContext;
|
|
import org.springframework.security.core.context.SecurityContext;
|
|
|
|
+import org.springframework.security.core.userdetails.UserDetails;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import reactor.core.publisher.Mono;
|
|
import reactor.core.publisher.Mono;
|
|
import reactor.core.publisher.Signal;
|
|
import reactor.core.publisher.Signal;
|
|
@@ -195,8 +197,11 @@ public class AuditService implements Closeable {
|
|
if (sig.getContextView().hasKey(key)) {
|
|
if (sig.getContextView().hasKey(key)) {
|
|
return sig.getContextView().<Mono<SecurityContext>>get(key)
|
|
return sig.getContextView().<Mono<SecurityContext>>get(key)
|
|
.map(context -> context.getAuthentication().getPrincipal())
|
|
.map(context -> context.getAuthentication().getPrincipal())
|
|
- .cast(RbacUser.class)
|
|
|
|
- .map(user -> new AuthenticatedUser(user.name(), user.groups()))
|
|
|
|
|
|
+ .cast(UserDetails.class)
|
|
|
|
+ .map(user -> {
|
|
|
|
+ var roles = user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet());
|
|
|
|
+ return new AuthenticatedUser(user.getUsername(), roles);
|
|
|
|
+ })
|
|
.switchIfEmpty(NO_AUTH_USER);
|
|
.switchIfEmpty(NO_AUTH_USER);
|
|
} else {
|
|
} else {
|
|
return NO_AUTH_USER;
|
|
return NO_AUTH_USER;
|