Skip to content

Commit 95dc99d

Browse files
committed
fixup! Fixed provectus#4312 the issue where audit was not working
1 parent c102792 commit 95dc99d

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/auth/OAuthSecurityConfig.java

+16-10
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.List;
88
import java.util.Map;
99
import java.util.Optional;
10+
import java.util.stream.Collectors;
1011
import lombok.RequiredArgsConstructor;
1112
import lombok.extern.log4j.Log4j2;
1213
import org.jetbrains.annotations.Nullable;
@@ -20,6 +21,7 @@
2021
import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity;
2122
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
2223
import org.springframework.security.config.web.server.ServerHttpSecurity;
24+
import org.springframework.security.core.GrantedAuthority;
2325
import org.springframework.security.oauth2.client.oidc.userinfo.OidcReactiveOAuth2UserService;
2426
import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserRequest;
2527
import org.springframework.security.oauth2.client.oidc.web.server.logout.OidcClientInitiatedServerLogoutSuccessHandler;
@@ -69,12 +71,14 @@ public ReactiveOAuth2UserService<OidcUserRequest, OidcUser> customOidcUserServic
6971
.flatMap(user -> {
7072
var provider = getProviderByProviderId(request.getClientRegistration().getRegistrationId());
7173
final var extractor = getExtractor(provider, acs);
72-
if (extractor == null) {
73-
return Mono.just(user);
74+
if (extractor != null) {
75+
return extractor.extract(acs, user, Map.of("request", request, "provider", provider))
76+
.map(groups -> new RbacOidcUser(user, groups));
77+
} else {
78+
return Mono.just(new RbacOidcUser(
79+
user,
80+
user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet())));
7481
}
75-
76-
return extractor.extract(acs, user, Map.of("request", request, "provider", provider))
77-
.map(groups -> new RbacOidcUser(user, groups));
7882
});
7983
}
8084

@@ -85,12 +89,14 @@ public ReactiveOAuth2UserService<OAuth2UserRequest, OAuth2User> customOauth2User
8589
.flatMap(user -> {
8690
var provider = getProviderByProviderId(request.getClientRegistration().getRegistrationId());
8791
final var extractor = getExtractor(provider, acs);
88-
if (extractor == null) {
89-
return Mono.just(user);
92+
if (extractor != null) {
93+
return extractor.extract(acs, user, Map.of("request", request, "provider", provider))
94+
.map(groups -> new RbacOAuth2User(user, groups));
95+
} else {
96+
return Mono.just(new RbacOAuth2User(
97+
user,
98+
user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet())));
9099
}
91-
92-
return extractor.extract(acs, user, Map.of("request", request, "provider", provider))
93-
.map(groups -> new RbacOAuth2User(user, groups));
94100
});
95101
}
96102

kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/audit/AuditService.java

-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import org.springframework.security.core.GrantedAuthority;
3333
import org.springframework.security.core.context.SecurityContext;
3434
import org.springframework.security.core.userdetails.UserDetails;
35-
import org.springframework.security.oauth2.core.oidc.user.OidcUser;
3635
import org.springframework.stereotype.Service;
3736
import reactor.core.publisher.Mono;
3837
import reactor.core.publisher.Signal;
@@ -209,10 +208,6 @@ private static AuthenticatedUser createAuthenticatedUser(SecurityContext context
209208
var principal = context.getAuthentication().getPrincipal();
210209
if (principal instanceof RbacUser user) {
211210
return new AuthenticatedUser(user.name(), user.groups());
212-
} else if (principal instanceof OidcUser user) {
213-
return new AuthenticatedUser(
214-
user.getName(),
215-
user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet()));
216211
} else if (principal instanceof UserDetails user) {
217212
return new AuthenticatedUser(
218213
user.getUsername(),

0 commit comments

Comments
 (0)