1818package org .opensearch .security .ssl ;
1919
2020import java .nio .file .Path ;
21- import java .security .AccessController ;
22- import java .security .PrivilegedAction ;
2321import java .util .ArrayList ;
2422import java .util .Collection ;
2523import java .util .Collections ;
4139import org .opensearch .cluster .metadata .IndexNameExpressionResolver ;
4240import org .opensearch .cluster .node .DiscoveryNodes ;
4341import org .opensearch .cluster .service .ClusterService ;
44- import org .opensearch .common .Booleans ;
4542import org .opensearch .common .network .NetworkModule ;
4643import org .opensearch .common .network .NetworkService ;
4744import org .opensearch .common .settings .ClusterSettings ;
7168import org .opensearch .rest .RestController ;
7269import org .opensearch .rest .RestHandler ;
7370import org .opensearch .script .ScriptService ;
71+ import org .opensearch .secure_sm .AccessController ;
7472import org .opensearch .security .DefaultObjectMapper ;
7573import org .opensearch .security .NonValidatingObjectMapper ;
7674import org .opensearch .security .filter .SecurityRestFilter ;
9492import io .netty .handler .ssl .OpenSsl ;
9593import io .netty .util .internal .PlatformDependent ;
9694
95+ import static org .opensearch .common .network .NetworkModule .TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY ;
9796import static org .opensearch .security .ssl .util .SSLConfigConstants .SECURITY_SSL_AUX_CLIENTAUTH_MODE ;
9897import static org .opensearch .security .ssl .util .SSLConfigConstants .SECURITY_SSL_AUX_ENABLED ;
9998import static org .opensearch .security .ssl .util .SSLConfigConstants .SECURITY_SSL_AUX_ENABLED_CIPHERS ;
104103import static org .opensearch .security .ssl .util .SSLConfigConstants .SECURITY_SSL_AUX_PEMKEY_PASSWORD ;
105104import static org .opensearch .security .ssl .util .SSLConfigConstants .SECURITY_SSL_AUX_PEMTRUSTEDCAS_FILEPATH ;
106105import static org .opensearch .security .ssl .util .SSLConfigConstants .SECURITY_SSL_AUX_TRUSTSTORE_FILEPATH ;
106+ import static org .opensearch .security .ssl .util .SSLConfigConstants .SECURITY_SSL_TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY ;
107107
108108//For ES5 this class has only effect when SSL only plugin is installed
109109public class OpenSearchSecuritySSLPlugin extends Plugin implements SystemIndexPlugin , NetworkPlugin {
110110 private static final Setting <Boolean > SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION = Setting .boolSetting (
111- SSLConfigConstants . SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION ,
111+ SECURITY_SSL_TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY ,
112112 true ,
113113 Property .NodeScope ,
114114 Property .Filtered ,
@@ -123,10 +123,6 @@ public class OpenSearchSecuritySSLPlugin extends Plugin implements SystemIndexPl
123123 Property .Deprecated
124124 );
125125
126- private static boolean USE_NETTY_DEFAULT_ALLOCATOR = Booleans .parseBoolean (
127- System .getProperty ("opensearch.unsafe.use_netty_default_allocator" ),
128- false
129- );
130126 protected final Logger log = LogManager .getLogger (this .getClass ());
131127 public static final String CLIENT_TYPE = "client.type" ;
132128 protected final boolean client ;
@@ -158,14 +154,7 @@ protected OpenSearchSecuritySSLPlugin(final Settings settings, final Path config
158154 this .configPath = null ;
159155 SSLConfig = new SSLConfig (false , false );
160156
161- AccessController .doPrivileged (new PrivilegedAction <Object >() {
162- @ Override
163- public Object run () {
164- System .setProperty ("opensearch.set.netty.runtime.available.processors" , "false" );
165- return null ;
166- }
167- });
168-
157+ AccessController .doPrivileged (() -> System .setProperty ("opensearch.set.netty.runtime.available.processors" , "false" ));
169158 return ;
170159 }
171160 SSLConfig = new SSLConfig (settings );
@@ -198,13 +187,9 @@ public Object run() {
198187 sm .checkPermission (new SpecialPermission ());
199188 }
200189
201- AccessController .doPrivileged (new PrivilegedAction <Object >() {
202- @ Override
203- public Object run () {
204- System .setProperty (SSLConfigConstants .JDK_TLS_REJECT_CLIENT_INITIATED_RENEGOTIATION , "true" );
205- return null ;
206- }
207- });
190+ AccessController .doPrivileged (
191+ () -> System .setProperty (SSLConfigConstants .JDK_TLS_REJECT_CLIENT_INITIATED_RENEGOTIATION , "true" )
192+ );
208193 log .debug (
209194 "Client side initiated TLS renegotiation forcibly disabled. This can prevent DoS attacks. (jdk.tls.rejectClientInitiatedRenegotiation set to true)."
210195 );
@@ -213,21 +198,11 @@ public Object run() {
213198 }
214199 }
215200
216- final SecurityManager sm = System .getSecurityManager ();
217-
218- if (sm != null ) {
219- sm .checkPermission (new SpecialPermission ());
220- }
221-
222201 // TODO check initialize native netty open ssl libs still neccessary
223- AccessController .doPrivileged (new PrivilegedAction <Object >() {
224- @ Override
225- public Object run () {
226- System .setProperty ("opensearch.set.netty.runtime.available.processors" , "false" );
227- PlatformDependent .newFixedMpscQueue (1 );
228- OpenSsl .isAvailable ();
229- return null ;
230- }
202+ AccessController .doPrivileged (() -> {
203+ System .setProperty ("opensearch.set.netty.runtime.available.processors" , "false" );
204+ PlatformDependent .newFixedMpscQueue (1 );
205+ OpenSsl .isAvailable ();
231206 });
232207
233208 this .settings = settings ;
@@ -442,7 +417,7 @@ public List<Setting<?>> getSettings() {
442417 Property .Filtered
443418 )
444419 );
445- if (!settings .stream ().anyMatch (s -> s .getKey ().equalsIgnoreCase (NetworkModule . TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY ))) {
420+ if (!settings .stream ().anyMatch (s -> s .getKey ().equalsIgnoreCase (TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY ))) {
446421 settings .add (SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION );
447422 }
448423 if (!settings .stream ()
@@ -751,14 +726,14 @@ protected Settings migrateSettings(Settings settings) {
751726
752727 if (!NetworkModule .TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION .exists (settings )) {
753728 builder .put (
754- NetworkModule . TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY ,
729+ TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY ,
755730 SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION .get (settings )
756731 );
757732 } else {
758733 if (SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION .exists (settings )) {
759734 throw new OpenSearchException (
760735 "Only one of the settings ["
761- + NetworkModule . TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY
736+ + TRANSPORT_SSL_ENFORCE_HOSTNAME_VERIFICATION_KEY
762737 + ", "
763738 + SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION .getKey ()
764739 + " (deprecated)] could be specified but not both"
0 commit comments