|
55 | 55 | import javax.net.ssl.SSLContext; |
56 | 56 |
|
57 | 57 | import static java.util.Map.entry; |
| 58 | +import static org.elasticsearch.entitlement.qa.test.EntitlementTest.ExpectedAccess.ALWAYS_ALLOWED; |
| 59 | +import static org.elasticsearch.entitlement.qa.test.EntitlementTest.ExpectedAccess.ALWAYS_DENIED; |
58 | 60 | import static org.elasticsearch.entitlement.qa.test.EntitlementTest.ExpectedAccess.PLUGINS; |
| 61 | +import static org.elasticsearch.entitlement.qa.test.EntitlementTest.ExpectedAccess.SERVER_ONLY; |
59 | 62 | import static org.elasticsearch.entitlement.qa.test.RestEntitlementsCheckAction.CheckAction.alwaysDenied; |
60 | 63 | import static org.elasticsearch.entitlement.qa.test.RestEntitlementsCheckAction.CheckAction.deniedToPlugins; |
61 | 64 | import static org.elasticsearch.entitlement.qa.test.RestEntitlementsCheckAction.CheckAction.forPlugins; |
|
65 | 68 | public class RestEntitlementsCheckAction extends BaseRestHandler { |
66 | 69 | private static final Logger logger = LogManager.getLogger(RestEntitlementsCheckAction.class); |
67 | 70 |
|
68 | | - record CheckAction(CheckedRunnable<Exception> action, boolean isAlwaysDeniedToPlugins, Integer fromJavaVersion) { |
| 71 | + record CheckAction(CheckedRunnable<Exception> action, EntitlementTest.ExpectedAccess expectedAccess, Integer fromJavaVersion) { |
69 | 72 | /** |
70 | 73 | * These cannot be granted to plugins, so our test plugins cannot test the "allowed" case. |
71 | 74 | */ |
72 | 75 | static CheckAction deniedToPlugins(CheckedRunnable<Exception> action) { |
73 | | - return new CheckAction(action, true, null); |
| 76 | + return new CheckAction(action, SERVER_ONLY, null); |
74 | 77 | } |
75 | 78 |
|
76 | 79 | static CheckAction forPlugins(CheckedRunnable<Exception> action) { |
77 | | - return new CheckAction(action, false, null); |
| 80 | + return new CheckAction(action, PLUGINS, null); |
78 | 81 | } |
79 | 82 |
|
80 | 83 | static CheckAction alwaysDenied(CheckedRunnable<Exception> action) { |
81 | | - return new CheckAction(action, true, null); |
| 84 | + return new CheckAction(action, ALWAYS_DENIED, null); |
82 | 85 | } |
83 | 86 | } |
84 | 87 |
|
@@ -125,7 +128,7 @@ static CheckAction alwaysDenied(CheckedRunnable<Exception> action) { |
125 | 128 | entry("responseCache_setDefault", alwaysDenied(RestEntitlementsCheckAction::setDefaultResponseCache)), |
126 | 129 | entry( |
127 | 130 | "createInetAddressResolverProvider", |
128 | | - new CheckAction(VersionSpecificNetworkChecks::createInetAddressResolverProvider, true, 18) |
| 131 | + new CheckAction(VersionSpecificNetworkChecks::createInetAddressResolverProvider, SERVER_ONLY, 18) |
129 | 132 | ), |
130 | 133 | entry("createURLStreamHandlerProvider", alwaysDenied(RestEntitlementsCheckAction::createURLStreamHandlerProvider)), |
131 | 134 | entry("createURLWithURLStreamHandler", alwaysDenied(RestEntitlementsCheckAction::createURLWithURLStreamHandler)), |
@@ -233,9 +236,8 @@ private static Stream<Entry<String, CheckAction>> getTestEntries(Class<?> action |
233 | 236 | } |
234 | 237 | } |
235 | 238 | }; |
236 | | - boolean deniedToPlugins = testAnnotation.expectedAccess() != PLUGINS; |
237 | 239 | Integer fromJavaVersion = testAnnotation.fromJavaVersion() == -1 ? null : testAnnotation.fromJavaVersion(); |
238 | | - entries.add(entry(method.getName(), new CheckAction(runnable, deniedToPlugins, fromJavaVersion))); |
| 240 | + entries.add(entry(method.getName(), new CheckAction(runnable, testAnnotation.expectedAccess(), fromJavaVersion))); |
239 | 241 | } |
240 | 242 | return entries.stream(); |
241 | 243 | } |
@@ -398,13 +400,17 @@ private static void receiveDatagramSocket() throws IOException { |
398 | 400 | public static Set<String> getCheckActionsAllowedInPlugins() { |
399 | 401 | return checkActions.entrySet() |
400 | 402 | .stream() |
401 | | - .filter(kv -> kv.getValue().isAlwaysDeniedToPlugins() == false) |
| 403 | + .filter(kv -> kv.getValue().expectedAccess().equals(PLUGINS) || kv.getValue().expectedAccess().equals(ALWAYS_ALLOWED)) |
402 | 404 | .map(Entry::getKey) |
403 | 405 | .collect(Collectors.toSet()); |
404 | 406 | } |
405 | 407 |
|
406 | | - public static Set<String> getAllCheckActions() { |
407 | | - return checkActions.keySet(); |
| 408 | + public static Set<String> getDeniableCheckActions() { |
| 409 | + return checkActions.entrySet() |
| 410 | + .stream() |
| 411 | + .filter(kv -> kv.getValue().expectedAccess().equals(ALWAYS_ALLOWED) == false) |
| 412 | + .map(Entry::getKey) |
| 413 | + .collect(Collectors.toSet()); |
408 | 414 | } |
409 | 415 |
|
410 | 416 | @Override |
|
0 commit comments