auth/src/main/java/org/apache/rocketmq/auth/authorization/manager/AuthorizationMetadataManagerImpl.java [65:96]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        try {
            validate(acl);

            initAcl(acl);

            CompletableFuture<? extends Subject> subjectFuture;
            if (acl.getSubject().isSubject(SubjectType.USER)) {
                User user = (User) acl.getSubject();
                subjectFuture = this.getAuthenticationMetadataProvider().getUser(user.getUsername());
            } else {
                subjectFuture = CompletableFuture.completedFuture(acl.getSubject());
            }

            return subjectFuture.thenCompose(subject -> {
                if (subject == null) {
                    throw new AuthorizationException("The subject of {} is not exist.", acl.getSubject().getSubjectKey());
                }
                return this.getAuthorizationMetadataProvider().getAcl(acl.getSubject());
            }).thenCompose(oldAcl -> {
                if (oldAcl == null) {
                    return this.getAuthorizationMetadataProvider().createAcl(acl);
                }
                oldAcl.updatePolicy(acl.getPolicies());
                return this.getAuthorizationMetadataProvider().updateAcl(oldAcl);
            });

        } catch (Exception e) {
            return this.handleException(e);
        }
    }

    @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



auth/src/main/java/org/apache/rocketmq/auth/authorization/manager/AuthorizationMetadataManagerImpl.java [98:129]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        try {
            validate(acl);

            initAcl(acl);

            CompletableFuture<? extends Subject> subjectFuture;
            if (acl.getSubject().isSubject(SubjectType.USER)) {
                User user = (User) acl.getSubject();
                subjectFuture = this.getAuthenticationMetadataProvider().getUser(user.getUsername());
            } else {
                subjectFuture = CompletableFuture.completedFuture(acl.getSubject());
            }

            return subjectFuture.thenCompose(subject -> {
                if (subject == null) {
                    throw new AuthorizationException("The subject of {} is not exist.", acl.getSubject().getSubjectKey());
                }
                return this.getAuthorizationMetadataProvider().getAcl(acl.getSubject());
            }).thenCompose(oldAcl -> {
                if (oldAcl == null) {
                    return this.getAuthorizationMetadataProvider().createAcl(acl);
                }
                oldAcl.updatePolicy(acl.getPolicies());
                return this.getAuthorizationMetadataProvider().updateAcl(oldAcl);
            });

        } catch (Exception e) {
            return this.handleException(e);
        }
    }

    @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



