Skip to content

Commit 45c191e

Browse files
authored
Refactor: separate package for entitlement records (#121204)
1 parent 329651a commit 45c191e

23 files changed

+91
-33
lines changed

libs/entitlement/src/main/java/module-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
exports org.elasticsearch.entitlement.runtime.api;
2121
exports org.elasticsearch.entitlement.runtime.policy;
22+
exports org.elasticsearch.entitlement.runtime.policy.entitlements to org.elasticsearch.server;
2223
exports org.elasticsearch.entitlement.instrumentation;
2324
exports org.elasticsearch.entitlement.bootstrap to org.elasticsearch.server;
2425
exports org.elasticsearch.entitlement.initialization to java.base;

libs/entitlement/src/main/java/org/elasticsearch/entitlement/initialization/EntitlementInitialization.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
import org.elasticsearch.entitlement.instrumentation.MethodKey;
1919
import org.elasticsearch.entitlement.instrumentation.Transformer;
2020
import org.elasticsearch.entitlement.runtime.api.ElasticsearchEntitlementChecker;
21-
import org.elasticsearch.entitlement.runtime.policy.CreateClassLoaderEntitlement;
22-
import org.elasticsearch.entitlement.runtime.policy.Entitlement;
23-
import org.elasticsearch.entitlement.runtime.policy.ExitVMEntitlement;
24-
import org.elasticsearch.entitlement.runtime.policy.InboundNetworkEntitlement;
25-
import org.elasticsearch.entitlement.runtime.policy.LoadNativeLibrariesEntitlement;
26-
import org.elasticsearch.entitlement.runtime.policy.OutboundNetworkEntitlement;
2721
import org.elasticsearch.entitlement.runtime.policy.Policy;
2822
import org.elasticsearch.entitlement.runtime.policy.PolicyManager;
2923
import org.elasticsearch.entitlement.runtime.policy.Scope;
24+
import org.elasticsearch.entitlement.runtime.policy.entitlements.CreateClassLoaderEntitlement;
25+
import org.elasticsearch.entitlement.runtime.policy.entitlements.Entitlement;
26+
import org.elasticsearch.entitlement.runtime.policy.entitlements.ExitVMEntitlement;
27+
import org.elasticsearch.entitlement.runtime.policy.entitlements.InboundNetworkEntitlement;
28+
import org.elasticsearch.entitlement.runtime.policy.entitlements.LoadNativeLibrariesEntitlement;
29+
import org.elasticsearch.entitlement.runtime.policy.entitlements.OutboundNetworkEntitlement;
3030

3131
import java.lang.instrument.Instrumentation;
3232
import java.lang.reflect.Constructor;

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/ExternalEntitlement.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
package org.elasticsearch.entitlement.runtime.policy;
1111

12+
import org.elasticsearch.entitlement.runtime.policy.entitlements.Entitlement;
13+
1214
import java.lang.annotation.ElementType;
1315
import java.lang.annotation.Retention;
1416
import java.lang.annotation.RetentionPolicy;

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/FileAccessTree.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.elasticsearch.entitlement.runtime.policy;
1111

1212
import org.elasticsearch.core.SuppressForbidden;
13+
import org.elasticsearch.entitlement.runtime.policy.entitlements.FileEntitlement;
1314

1415
import java.io.File;
1516
import java.nio.file.Path;
@@ -18,13 +19,13 @@
1819
import java.util.List;
1920
import java.util.Objects;
2021

21-
final class FileAccessTree {
22-
static final FileAccessTree EMPTY = new FileAccessTree(List.of());
22+
public final class FileAccessTree {
23+
public static final FileAccessTree EMPTY = new FileAccessTree(List.of());
2324

2425
private final String[] readPaths;
2526
private final String[] writePaths;
2627

27-
FileAccessTree(List<FileEntitlement> fileEntitlements) {
28+
private FileAccessTree(List<FileEntitlement> fileEntitlements) {
2829
List<String> readPaths = new ArrayList<>();
2930
List<String> writePaths = new ArrayList<>();
3031
for (FileEntitlement fileEntitlement : fileEntitlements) {
@@ -42,6 +43,10 @@ final class FileAccessTree {
4243
this.writePaths = writePaths.toArray(new String[0]);
4344
}
4445

46+
public static FileAccessTree of(List<FileEntitlement> fileEntitlements) {
47+
return new FileAccessTree(fileEntitlements);
48+
}
49+
4550
boolean canRead(Path path) {
4651
return checkPath(normalize(path), readPaths);
4752
}

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/PolicyManager.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@
1313
import org.elasticsearch.core.SuppressForbidden;
1414
import org.elasticsearch.entitlement.instrumentation.InstrumentationService;
1515
import org.elasticsearch.entitlement.runtime.api.NotEntitledException;
16+
import org.elasticsearch.entitlement.runtime.policy.entitlements.CreateClassLoaderEntitlement;
17+
import org.elasticsearch.entitlement.runtime.policy.entitlements.Entitlement;
18+
import org.elasticsearch.entitlement.runtime.policy.entitlements.ExitVMEntitlement;
19+
import org.elasticsearch.entitlement.runtime.policy.entitlements.FileEntitlement;
20+
import org.elasticsearch.entitlement.runtime.policy.entitlements.InboundNetworkEntitlement;
21+
import org.elasticsearch.entitlement.runtime.policy.entitlements.LoadNativeLibrariesEntitlement;
22+
import org.elasticsearch.entitlement.runtime.policy.entitlements.OutboundNetworkEntitlement;
23+
import org.elasticsearch.entitlement.runtime.policy.entitlements.SetHttpsConnectionPropertiesEntitlement;
24+
import org.elasticsearch.entitlement.runtime.policy.entitlements.WriteSystemPropertiesEntitlement;
1625
import org.elasticsearch.logging.LogManager;
1726
import org.elasticsearch.logging.Logger;
1827

@@ -55,7 +64,7 @@ public static ModuleEntitlements from(List<Entitlement> entitlements) {
5564
.toList();
5665
return new ModuleEntitlements(
5766
entitlements.stream().collect(groupingBy(Entitlement::getClass)),
58-
new FileAccessTree(fileEntitlements)
67+
FileAccessTree.of(fileEntitlements)
5968
);
6069
}
6170

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/PolicyParser.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@
99

1010
package org.elasticsearch.entitlement.runtime.policy;
1111

12+
import org.elasticsearch.entitlement.runtime.policy.entitlements.CreateClassLoaderEntitlement;
13+
import org.elasticsearch.entitlement.runtime.policy.entitlements.Entitlement;
14+
import org.elasticsearch.entitlement.runtime.policy.entitlements.FileEntitlement;
15+
import org.elasticsearch.entitlement.runtime.policy.entitlements.InboundNetworkEntitlement;
16+
import org.elasticsearch.entitlement.runtime.policy.entitlements.LoadNativeLibrariesEntitlement;
17+
import org.elasticsearch.entitlement.runtime.policy.entitlements.OutboundNetworkEntitlement;
18+
import org.elasticsearch.entitlement.runtime.policy.entitlements.SetHttpsConnectionPropertiesEntitlement;
19+
import org.elasticsearch.entitlement.runtime.policy.entitlements.WriteSystemPropertiesEntitlement;
1220
import org.elasticsearch.xcontent.XContentLocation;
1321
import org.elasticsearch.xcontent.XContentParser;
1422
import org.elasticsearch.xcontent.XContentParserConfiguration;

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/PolicyValidationException.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
* parser is able to wrap this exception with a line/character number for
1616
* additional useful error information.
1717
*/
18-
class PolicyValidationException extends RuntimeException {
18+
public class PolicyValidationException extends RuntimeException {
1919

20-
PolicyValidationException(String message) {
20+
public PolicyValidationException(String message) {
2121
super(message);
2222
}
2323

24-
PolicyValidationException(String message, Throwable cause) {
24+
public PolicyValidationException(String message, Throwable cause) {
2525
super(message, cause);
2626
}
2727
}

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/Scope.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
package org.elasticsearch.entitlement.runtime.policy;
1111

12+
import org.elasticsearch.entitlement.runtime.policy.entitlements.Entitlement;
13+
1214
import java.util.List;
1315
import java.util.Objects;
1416

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.entitlement.runtime.policy;
10+
package org.elasticsearch.entitlement.runtime.policy.entitlements;
11+
12+
import org.elasticsearch.entitlement.runtime.policy.ExternalEntitlement;
1113

1214
public record CreateClassLoaderEntitlement() implements Entitlement {
1315
@ExternalEntitlement

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/Entitlement.java renamed to libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/entitlements/Entitlement.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.entitlement.runtime.policy;
10+
package org.elasticsearch.entitlement.runtime.policy.entitlements;
11+
12+
import org.elasticsearch.entitlement.runtime.policy.Policy;
1113

1214
/**
1315
* Marker interface to ensure that only {@link Entitlement} are

0 commit comments

Comments
 (0)