Skip to content

Commit 305e0c9

Browse files
author
Artur Rakhmatulin
authored
Merge branch 'apache:main' into chore/bump-s3mock-from-3.11.0-to-4.7.0
2 parents 6d2e844 + 96f1459 commit 305e0c9

File tree

72 files changed

+648
-463
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+648
-463
lines changed

build.gradle.kts

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,15 @@ if (System.getProperty("idea.sync.active").toBoolean()) {
6060
eclipse { project { name = ideName } }
6161

6262
tasks.named<RatTask>("rat").configure {
63-
// These are Gradle file pattern syntax
63+
// Gradle
6464
excludes.add("**/build/**")
65+
excludes.add("gradle/wrapper/gradle-wrapper*")
66+
excludes.add(".gradle")
67+
excludes.add("**/kotlin-compiler*")
68+
excludes.add("**/build-logic/.kotlin/**")
6569

66-
excludes.add("docs/CNAME")
67-
excludes.add("docs/index.html")
70+
excludes.add("ide-name.txt")
71+
excludes.add("version.txt")
6872

6973
excludes.add("DISCLAIMER_WIP")
7074
excludes.add("LICENSE")
@@ -85,60 +89,56 @@ tasks.named<RatTask>("rat").configure {
8589
// Manifest files do not allow comments
8690
excludes.add("tools/version/src/jarTest/resources/META-INF/FAKE_MANIFEST.MF")
8791

88-
excludes.add("ide-name.txt")
89-
excludes.add("version.txt")
92+
// Git & GitHub
9093
excludes.add(".git")
91-
excludes.add(".gradle")
92-
excludes.add(".idea")
93-
excludes.add(".java-version")
94-
excludes.add("**/.keep")
95-
excludes.add("**/poetry.lock")
96-
9794
excludes.add(".github/pull_request_template.md")
9895

99-
excludes.add("spec/docs.yaml")
100-
excludes.add("spec/index.yml")
101-
102-
excludes.add("gradle/wrapper/gradle-wrapper*")
103-
96+
// Misc build artifacts
97+
excludes.add(".java-version")
98+
excludes.add("**/.keep")
10499
excludes.add("logs/**")
100+
excludes.add("**/*.lock")
101+
102+
// Polaris service startup banner
105103
excludes.add("runtime/service/src/**/banner.txt")
106104

105+
// Web site
106+
excludes.add("**/go.sum")
107107
excludes.add("site/node_modules/**")
108108
excludes.add("site/layouts/robots.txt")
109109
// Ignore generated stuff, when the Hugo is run w/o Docker
110110
excludes.add("site/public/**")
111111
excludes.add("site/resources/_gen/**")
112112
excludes.add("node_modules/**")
113113

114+
// Python
115+
excludes.add("**/.venv/**")
114116
excludes.add("**/polaris-venv/**")
115-
117+
excludes.add("**/poetry.lock")
118+
excludes.add("**/.ruff_cache/**")
119+
excludes.add("**/.mypy_cache/**")
116120
excludes.add("**/.pytest_cache/**")
121+
excludes.add("client/python/.openapi-generator/**")
122+
123+
// Jupyter
124+
excludes.add("**/*.ipynb")
125+
126+
// regtests
117127
excludes.add("regtests/**/py.typed")
118128
excludes.add("regtests/**/*.ref")
119129
excludes.add("regtests/.env")
120130
excludes.add("regtests/derby.log")
121131
excludes.add("regtests/metastore_db/**")
122-
excludes.add("client/python/.openapi-generator/**")
123132
excludes.add("regtests/output/**")
133+
excludes.add("plugins/**/*.ref")
124134

125-
excludes.add("**/*.ipynb")
135+
// IntelliJ
136+
excludes.add(".idea")
126137
excludes.add("**/*.iml")
127138
excludes.add("**/*.iws")
128139

140+
// Rat can't scan binary images
129141
excludes.add("**/*.png")
130-
excludes.add("**/*.svg")
131-
132-
excludes.add("**/*.lock")
133-
134-
excludes.add("**/*.env*")
135-
136-
excludes.add("**/go.sum")
137-
138-
excludes.add("**/kotlin-compiler*")
139-
excludes.add("**/build-logic/.kotlin/**")
140-
141-
excludes.add("plugins/**/*.ref")
142142
}
143143

144144
tasks.register<Exec>("regeneratePythonClient") {

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ swagger = "1.6.16"
4040
antlr4-runtime = { module = "org.antlr:antlr4-runtime", version.strictly = "4.9.3" } # spark integration tests
4141
assertj-core = { module = "org.assertj:assertj-core", version = "3.27.4" }
4242
auth0-jwt = { module = "com.auth0:java-jwt", version = "4.5.0" }
43-
awssdk-bom = { module = "software.amazon.awssdk:bom", version = "2.32.19" }
43+
awssdk-bom = { module = "software.amazon.awssdk:bom", version = "2.32.24" }
4444
awaitility = { module = "org.awaitility:awaitility", version = "4.3.0" }
4545
azuresdk-bom = { module = "com.azure:azure-sdk-bom", version = "1.2.37" }
4646
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version = "3.2.2" }

polaris-core/src/main/java/org/apache/polaris/core/auth/AuthenticatedPolarisPrincipal.java

Lines changed: 0 additions & 63 deletions
This file was deleted.

polaris-core/src/main/java/org/apache/polaris/core/auth/PolarisAuthorizer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
public interface PolarisAuthorizer {
3030

3131
void authorizeOrThrow(
32-
@Nonnull AuthenticatedPolarisPrincipal authenticatedPrincipal,
32+
@Nonnull PolarisPrincipal polarisPrincipal,
3333
@Nonnull Set<PolarisBaseEntity> activatedEntities,
3434
@Nonnull PolarisAuthorizableOperation authzOp,
3535
@Nullable PolarisResolvedPathWrapper target,
3636
@Nullable PolarisResolvedPathWrapper secondary);
3737

3838
void authorizeOrThrow(
39-
@Nonnull AuthenticatedPolarisPrincipal authenticatedPrincipal,
39+
@Nonnull PolarisPrincipal polarisPrincipal,
4040
@Nonnull Set<PolarisBaseEntity> activatedEntities,
4141
@Nonnull PolarisAuthorizableOperation authzOp,
4242
@Nullable List<PolarisResolvedPathWrapper> targets,

polaris-core/src/main/java/org/apache/polaris/core/auth/PolarisAuthorizerImpl.java

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -558,13 +558,13 @@ public boolean matchesOrIsSubsumedBy(
558558

559559
@Override
560560
public void authorizeOrThrow(
561-
@Nonnull AuthenticatedPolarisPrincipal authenticatedPrincipal,
561+
@Nonnull PolarisPrincipal polarisPrincipal,
562562
@Nonnull Set<PolarisBaseEntity> activatedEntities,
563563
@Nonnull PolarisAuthorizableOperation authzOp,
564564
@Nullable PolarisResolvedPathWrapper target,
565565
@Nullable PolarisResolvedPathWrapper secondary) {
566566
authorizeOrThrow(
567-
authenticatedPrincipal,
567+
polarisPrincipal,
568568
activatedEntities,
569569
authzOp,
570570
target == null ? null : List.of(target),
@@ -573,7 +573,7 @@ public void authorizeOrThrow(
573573

574574
@Override
575575
public void authorizeOrThrow(
576-
@Nonnull AuthenticatedPolarisPrincipal authenticatedPrincipal,
576+
@Nonnull PolarisPrincipal polarisPrincipal,
577577
@Nonnull Set<PolarisBaseEntity> activatedEntities,
578578
@Nonnull PolarisAuthorizableOperation authzOp,
579579
@Nullable List<PolarisResolvedPathWrapper> targets,
@@ -582,20 +582,18 @@ public void authorizeOrThrow(
582582
realmConfig.getConfig(
583583
FeatureConfiguration.ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING);
584584
if (enforceCredentialRotationRequiredState
585-
&& authenticatedPrincipal
586-
.getPrincipalEntity()
587-
.getInternalPropertiesAsMap()
585+
&& polarisPrincipal
586+
.getProperties()
588587
.containsKey(PolarisEntityConstants.PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_STATE)
589588
&& authzOp != PolarisAuthorizableOperation.ROTATE_CREDENTIALS) {
590589
throw new ForbiddenException(
591590
"Principal '%s' is not authorized for op %s due to PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_STATE",
592-
authenticatedPrincipal.getName(), authzOp);
593-
} else if (!isAuthorized(
594-
authenticatedPrincipal, activatedEntities, authzOp, targets, secondaries)) {
591+
polarisPrincipal.getName(), authzOp);
592+
} else if (!isAuthorized(polarisPrincipal, activatedEntities, authzOp, targets, secondaries)) {
595593
throw new ForbiddenException(
596594
"Principal '%s' with activated PrincipalRoles '%s' and activated grants via '%s' is not authorized for op %s",
597-
authenticatedPrincipal.getName(),
598-
authenticatedPrincipal.getActivatedPrincipalRoleNames(),
595+
polarisPrincipal.getName(),
596+
polarisPrincipal.getRoles(),
599597
activatedEntities.stream().map(PolarisEntityCore::getName).collect(Collectors.toSet()),
600598
authzOp);
601599
}
@@ -607,21 +605,21 @@ public void authorizeOrThrow(
607605
* the operation.
608606
*/
609607
public boolean isAuthorized(
610-
@Nonnull AuthenticatedPolarisPrincipal authenticatedPolarisPrincipal,
608+
@Nonnull PolarisPrincipal polarisPrincipal,
611609
@Nonnull Set<PolarisBaseEntity> activatedEntities,
612610
@Nonnull PolarisAuthorizableOperation authzOp,
613611
@Nullable PolarisResolvedPathWrapper target,
614612
@Nullable PolarisResolvedPathWrapper secondary) {
615613
return isAuthorized(
616-
authenticatedPolarisPrincipal,
614+
polarisPrincipal,
617615
activatedEntities,
618616
authzOp,
619617
target == null ? null : List.of(target),
620618
secondary == null ? null : List.of(secondary));
621619
}
622620

623621
public boolean isAuthorized(
624-
@Nonnull AuthenticatedPolarisPrincipal authenticatedPolarisPrincipal,
622+
@Nonnull PolarisPrincipal polarisPrincipal,
625623
@Nonnull Set<PolarisBaseEntity> activatedEntities,
626624
@Nonnull PolarisAuthorizableOperation authzOp,
627625
@Nullable List<PolarisResolvedPathWrapper> targets,
@@ -636,8 +634,7 @@ public boolean isAuthorized(
636634
authzOp,
637635
privilegeOnTarget);
638636
for (PolarisResolvedPathWrapper target : targets) {
639-
if (!hasTransitivePrivilege(
640-
authenticatedPolarisPrincipal, entityIdSet, privilegeOnTarget, target)) {
637+
if (!hasTransitivePrivilege(polarisPrincipal, entityIdSet, privilegeOnTarget, target)) {
641638
// TODO: Collect missing privileges to report all at the end and/or return to code
642639
// that throws NotAuthorizedException for more useful messages.
643640
return false;
@@ -652,7 +649,7 @@ public boolean isAuthorized(
652649
privilegeOnSecondary);
653650
for (PolarisResolvedPathWrapper secondary : secondaries) {
654651
if (!hasTransitivePrivilege(
655-
authenticatedPolarisPrincipal, entityIdSet, privilegeOnSecondary, secondary)) {
652+
polarisPrincipal, entityIdSet, privilegeOnSecondary, secondary)) {
656653
return false;
657654
}
658655
}
@@ -670,7 +667,7 @@ public boolean isAuthorized(
670667
* errors/exceptions.
671668
*/
672669
public boolean hasTransitivePrivilege(
673-
@Nonnull AuthenticatedPolarisPrincipal authenticatedPolarisPrincipal,
670+
@Nonnull PolarisPrincipal polarisPrincipal,
674671
Set<Long> activatedGranteeIds,
675672
PolarisPrivilege desiredPrivilege,
676673
PolarisResolvedPathWrapper resolvedPath) {
@@ -693,7 +690,7 @@ public boolean hasTransitivePrivilege(
693690
desiredPrivilege,
694691
grantRecord,
695692
resolvedSecurableEntity,
696-
authenticatedPolarisPrincipal.getName(),
693+
polarisPrincipal.getName(),
697694
activatedGranteeIds);
698695
return true;
699696
}
@@ -704,7 +701,7 @@ public boolean hasTransitivePrivilege(
704701
LOGGER.debug(
705702
"Failed to satisfy privilege {} for principalName {} on resolvedPath {}",
706703
desiredPrivilege,
707-
authenticatedPolarisPrincipal.getName(),
704+
polarisPrincipal.getName(),
708705
resolvedPath);
709706
return false;
710707
}

0 commit comments

Comments
 (0)