1313import org .elasticsearch .common .Strings ;
1414import org .elasticsearch .core .CheckedRunnable ;
1515import org .elasticsearch .core .SuppressForbidden ;
16- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyBreakIteratorProvider ;
17- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyCalendarDataProvider ;
18- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyCalendarNameProvider ;
19- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyCollatorProvider ;
20- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyCurrencyNameProvider ;
21- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyDateFormatProvider ;
22- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyDateFormatSymbolsProvider ;
23- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyDecimalFormatSymbolsProvider ;
24- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyLocaleNameProvider ;
2516import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyLocaleServiceProvider ;
26- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyNumberFormatProvider ;
27- import org .elasticsearch .entitlement .qa .test .DummyImplementations .DummyTimeZoneNameProvider ;
2817import org .elasticsearch .logging .LogManager ;
2918import org .elasticsearch .logging .Logger ;
3019import org .elasticsearch .rest .BaseRestHandler ;
7564@ SuppressWarnings ("unused" )
7665public class RestEntitlementsCheckAction extends BaseRestHandler {
7766 private static final Logger logger = LogManager .getLogger (RestEntitlementsCheckAction .class );
78- public static final Thread NO_OP_SHUTDOWN_HOOK = new Thread (() -> {}, "Shutdown hook for testing" );
67+
7968
8069 record CheckAction (CheckedRunnable <Exception > action , boolean isAlwaysDeniedToPlugins , Integer fromJavaVersion ) {
8170 /**
@@ -99,37 +88,17 @@ static CheckAction alwaysDenied(CheckedRunnable<Exception> action) {
9988 entry ("static_reflection" , deniedToPlugins (RestEntitlementsCheckAction ::staticMethodNeverEntitledViaReflection )),
10089 entry ("nonstatic_reflection" , deniedToPlugins (RestEntitlementsCheckAction ::nonstaticMethodNeverEntitledViaReflection )),
10190 entry ("constructor_reflection" , deniedToPlugins (RestEntitlementsCheckAction ::constructorNeverEntitledViaReflection )),
102- entry ("runtime_exit" , deniedToPlugins (RestEntitlementsCheckAction ::runtimeExit )),
103- entry ("runtime_halt" , deniedToPlugins (RestEntitlementsCheckAction ::runtimeHalt )),
104- entry ("system_exit" , deniedToPlugins (RestEntitlementsCheckAction ::systemExit )),
10591 entry ("create_classloader" , forPlugins (RestEntitlementsCheckAction ::createClassLoader )),
10692 entry ("processBuilder_start" , deniedToPlugins (RestEntitlementsCheckAction ::processBuilder_start )),
10793 entry ("processBuilder_startPipeline" , deniedToPlugins (RestEntitlementsCheckAction ::processBuilder_startPipeline )),
10894 entry ("set_https_connection_properties" , forPlugins (RestEntitlementsCheckAction ::setHttpsConnectionProperties )),
10995 entry ("set_default_ssl_socket_factory" , alwaysDenied (RestEntitlementsCheckAction ::setDefaultSSLSocketFactory )),
11096 entry ("set_default_hostname_verifier" , alwaysDenied (RestEntitlementsCheckAction ::setDefaultHostnameVerifier )),
11197 entry ("set_default_ssl_context" , alwaysDenied (RestEntitlementsCheckAction ::setDefaultSSLContext )),
112- entry ("system_setIn" , alwaysDenied (RestEntitlementsCheckAction ::system$$setIn )),
113- entry ("system_setOut" , alwaysDenied (RestEntitlementsCheckAction ::system$$setOut )),
114- entry ("system_setErr" , alwaysDenied (RestEntitlementsCheckAction ::system$$setErr )),
115- entry ("runtime_addShutdownHook" , alwaysDenied (RestEntitlementsCheckAction ::runtime$addShutdownHook )),
116- entry ("runtime_removeShutdownHook" , alwaysDenied (RestEntitlementsCheckAction ::runtime$$removeShutdownHook )),
11798 entry (
11899 "thread_setDefaultUncaughtExceptionHandler" ,
119100 alwaysDenied (RestEntitlementsCheckAction ::thread$$setDefaultUncaughtExceptionHandler )
120101 ),
121- entry ("localeServiceProvider" , alwaysDenied (RestEntitlementsCheckAction ::localeServiceProvider$ )),
122- entry ("breakIteratorProvider" , alwaysDenied (RestEntitlementsCheckAction ::breakIteratorProvider$ )),
123- entry ("collatorProvider" , alwaysDenied (RestEntitlementsCheckAction ::collatorProvider$ )),
124- entry ("dateFormatProvider" , alwaysDenied (RestEntitlementsCheckAction ::dateFormatProvider$ )),
125- entry ("dateFormatSymbolsProvider" , alwaysDenied (RestEntitlementsCheckAction ::dateFormatSymbolsProvider$ )),
126- entry ("decimalFormatSymbolsProvider" , alwaysDenied (RestEntitlementsCheckAction ::decimalFormatSymbolsProvider$ )),
127- entry ("numberFormatProvider" , alwaysDenied (RestEntitlementsCheckAction ::numberFormatProvider$ )),
128- entry ("calendarDataProvider" , alwaysDenied (RestEntitlementsCheckAction ::calendarDataProvider$ )),
129- entry ("calendarNameProvider" , alwaysDenied (RestEntitlementsCheckAction ::calendarNameProvider$ )),
130- entry ("currencyNameProvider" , alwaysDenied (RestEntitlementsCheckAction ::currencyNameProvider$ )),
131- entry ("localeNameProvider" , alwaysDenied (RestEntitlementsCheckAction ::localeNameProvider$ )),
132- entry ("timeZoneNameProvider" , alwaysDenied (RestEntitlementsCheckAction ::timeZoneNameProvider$ )),
133102 entry ("logManager" , alwaysDenied (RestEntitlementsCheckAction ::logManager$ )),
134103
135104 entry ("locale_setDefault" , alwaysDenied (WritePropertiesCheckActions ::setDefaultLocale )),
@@ -326,21 +295,6 @@ private static void setDefaultSSLSocketFactory() {
326295 HttpsURLConnection .setDefaultSSLSocketFactory (new DummyImplementations .DummySSLSocketFactory ());
327296 }
328297
329- @ SuppressForbidden (reason = "Specifically testing Runtime.exit" )
330- private static void runtimeExit () {
331- Runtime .getRuntime ().exit (123 );
332- }
333-
334- @ SuppressForbidden (reason = "Specifically testing Runtime.halt" )
335- private static void runtimeHalt () {
336- Runtime .getRuntime ().halt (123 );
337- }
338-
339- @ SuppressForbidden (reason = "Specifically testing System.exit" )
340- private static void systemExit () {
341- System .exit (123 );
342- }
343-
344298 private static void staticMethodNeverEntitledViaReflection () throws Exception {
345299 Method systemExit = System .class .getMethod ("exit" , int .class );
346300 systemExit .invoke (null , 123 );
@@ -369,84 +323,14 @@ private static void setHttpsConnectionProperties() {
369323 new DummyImplementations .DummyHttpsURLConnection ().setSSLSocketFactory (new DummyImplementations .DummySSLSocketFactory ());
370324 }
371325
372- private static void system$$setIn () {
373- System .setIn (System .in );
374- }
375-
376- @ SuppressForbidden (reason = "This should be a no-op so we don't interfere with system streams" )
377- private static void system$$setOut () {
378- System .setOut (System .out );
379- }
380-
381- @ SuppressForbidden (reason = "This should be a no-op so we don't interfere with system streams" )
382- private static void system$$setErr () {
383- System .setErr (System .err );
384- }
385-
386- private static void runtime$addShutdownHook () {
387- Runtime .getRuntime ().addShutdownHook (NO_OP_SHUTDOWN_HOOK );
388- }
389-
390- private static void runtime$$removeShutdownHook () {
391- Runtime .getRuntime ().removeShutdownHook (NO_OP_SHUTDOWN_HOOK );
392- }
393-
394326 private static void thread$$setDefaultUncaughtExceptionHandler () {
395327 Thread .setDefaultUncaughtExceptionHandler (Thread .getDefaultUncaughtExceptionHandler ());
396328 }
397329
398- private static void localeServiceProvider$ () {
399- new DummyLocaleServiceProvider ();
400- }
401-
402330 private static void constructorNeverEntitledViaReflection () throws Exception {
403331 DummyLocaleServiceProvider .class .getConstructor ().newInstance ();
404332 }
405333
406- private static void breakIteratorProvider$ () {
407- new DummyBreakIteratorProvider ();
408- }
409-
410- private static void collatorProvider$ () {
411- new DummyCollatorProvider ();
412- }
413-
414- private static void dateFormatProvider$ () {
415- new DummyDateFormatProvider ();
416- }
417-
418- private static void dateFormatSymbolsProvider$ () {
419- new DummyDateFormatSymbolsProvider ();
420- }
421-
422- private static void decimalFormatSymbolsProvider$ () {
423- new DummyDecimalFormatSymbolsProvider ();
424- }
425-
426- private static void numberFormatProvider$ () {
427- new DummyNumberFormatProvider ();
428- }
429-
430- private static void calendarDataProvider$ () {
431- new DummyCalendarDataProvider ();
432- }
433-
434- private static void calendarNameProvider$ () {
435- new DummyCalendarNameProvider ();
436- }
437-
438- private static void currencyNameProvider$ () {
439- new DummyCurrencyNameProvider ();
440- }
441-
442- private static void localeNameProvider$ () {
443- new DummyLocaleNameProvider ();
444- }
445-
446- private static void timeZoneNameProvider$ () {
447- new DummyTimeZoneNameProvider ();
448- }
449-
450334 private static void logManager$ () {
451335 new java .util .logging .LogManager () {
452336 };
0 commit comments