@@ -108,7 +108,8 @@ && isConsumerGroupAccessible(context, user)
108108 && isConnectAccessible (context , user )
109109 && isConnectorAccessible (context , user ) // TODO connector selectors
110110 && isSchemaAccessible (context , user )
111- && isKsqlAccessible (context , user );
111+ && isKsqlAccessible (context , user )
112+ && isAclAccessible (context , user );
112113
113114 if (!accessGranted ) {
114115 throw new AccessDeniedException ("Access denied" );
@@ -364,6 +365,23 @@ private boolean isKsqlAccessible(AccessContext context, AuthenticatedUser user)
364365 return isAccessible (Resource .KSQL , null , user , context , requiredActions );
365366 }
366367
368+ private boolean isAclAccessible (AccessContext context , AuthenticatedUser user ) {
369+ if (!rbacEnabled ) {
370+ return true ;
371+ }
372+
373+ if (context .getAclActions ().isEmpty ()) {
374+ return true ;
375+ }
376+
377+ Set <String > requiredActions = context .getAclActions ()
378+ .stream ()
379+ .map (a -> a .toString ().toUpperCase ())
380+ .collect (Collectors .toSet ());
381+
382+ return isAccessible (Resource .ACL , null , user , context , requiredActions );
383+ }
384+
367385 public Set <ProviderAuthorityExtractor > getOauthExtractors () {
368386 return oauthExtractors ;
369387 }
0 commit comments