4646import java .util .List ;
4747import java .util .Map ;
4848import java .util .Objects ;
49+ import java .util .Optional ;
4950import java .util .Set ;
5051import java .util .concurrent .atomic .AtomicReference ;
5152import java .util .function .BiFunction ;
114115import org .opensearch .plugins .ExtensionAwarePlugin ;
115116import org .opensearch .plugins .IdentityPlugin ;
116117import org .opensearch .plugins .MapperPlugin ;
118+ import org .opensearch .plugins .SecureSettingsFactory ;
119+ import org .opensearch .plugins .SecureTransportSettingsProvider ;
117120import org .opensearch .repositories .RepositoriesService ;
118121import org .opensearch .rest .RestController ;
119122import org .opensearch .rest .RestHandler ;
167170import org .opensearch .security .securityconf .DynamicConfigFactory ;
168171import org .opensearch .security .setting .OpensearchDynamicSetting ;
169172import org .opensearch .security .setting .TransportPassiveAuthSetting ;
173+ import org .opensearch .security .ssl .OpenSearchSecureSettingsFactory ;
170174import org .opensearch .security .ssl .OpenSearchSecuritySSLPlugin ;
171175import org .opensearch .security .ssl .SslExceptionHandler ;
172176import org .opensearch .security .ssl .http .netty .ValidatingDispatcher ;
173177import org .opensearch .security .ssl .transport .DefaultPrincipalExtractor ;
174- import org .opensearch .security .ssl .transport .SecuritySSLNettyTransport ;
175178import org .opensearch .security .ssl .util .SSLConfigConstants ;
176179import org .opensearch .security .support .ConfigConstants ;
177180import org .opensearch .security .support .GuardedSearchOperationWrapper ;
199202import org .opensearch .transport .TransportRequestOptions ;
200203import org .opensearch .transport .TransportResponseHandler ;
201204import org .opensearch .transport .TransportService ;
205+ import org .opensearch .transport .netty4 .ssl .SecureNetty4Transport ;
202206import org .opensearch .watcher .ResourceWatcherService ;
203207
204208import static org .opensearch .security .dlic .rest .api .RestApiAdminPrivilegesEvaluator .ENDPOINTS_WITH_PERMISSIONS ;
@@ -858,44 +862,44 @@ public <T extends TransportResponse> void sendRequest(
858862 }
859863
860864 @ Override
861- public Map <String , Supplier <Transport >> getTransports (
865+ public Map <String , Supplier <Transport >> getSecureTransports (
862866 Settings settings ,
863867 ThreadPool threadPool ,
864868 PageCacheRecycler pageCacheRecycler ,
865869 CircuitBreakerService circuitBreakerService ,
866870 NamedWriteableRegistry namedWriteableRegistry ,
867871 NetworkService networkService ,
872+ SecureTransportSettingsProvider secureTransportSettingsProvider ,
868873 Tracer tracer
869874 ) {
870875 Map <String , Supplier <Transport >> transports = new HashMap <String , Supplier <Transport >>();
871876
872877 if (SSLConfig .isSslOnlyMode ()) {
873- return super .getTransports (
878+ return super .getSecureTransports (
874879 settings ,
875880 threadPool ,
876881 pageCacheRecycler ,
877882 circuitBreakerService ,
878883 namedWriteableRegistry ,
879884 networkService ,
885+ secureTransportSettingsProvider ,
880886 tracer
881887 );
882888 }
883889
884890 if (transportSSLEnabled ) {
885891 transports .put (
886892 "org.opensearch.security.ssl.http.netty.SecuritySSLNettyTransport" ,
887- () -> new SecuritySSLNettyTransport (
888- settings ,
893+ () -> new SecureNetty4Transport (
894+ migrateSettings ( settings ) ,
889895 Version .CURRENT ,
890896 threadPool ,
891897 networkService ,
892898 pageCacheRecycler ,
893899 namedWriteableRegistry ,
894900 circuitBreakerService ,
895- sks ,
896- evaluateSslExceptionHandler (),
897901 sharedGroupFactory ,
898- SSLConfig ,
902+ secureTransportSettingsProvider ,
899903 tracer
900904 )
901905 );
@@ -904,7 +908,7 @@ public Map<String, Supplier<Transport>> getTransports(
904908 }
905909
906910 @ Override
907- public Map <String , Supplier <HttpServerTransport >> getHttpTransports (
911+ public Map <String , Supplier <HttpServerTransport >> getSecureHttpTransports (
908912 Settings settings ,
909913 ThreadPool threadPool ,
910914 BigArrays bigArrays ,
@@ -914,11 +918,12 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
914918 NetworkService networkService ,
915919 Dispatcher dispatcher ,
916920 ClusterSettings clusterSettings ,
921+ SecureTransportSettingsProvider secureTransportSettingsProvider ,
917922 Tracer tracer
918923 ) {
919924
920925 if (SSLConfig .isSslOnlyMode ()) {
921- return super .getHttpTransports (
926+ return super .getSecureHttpTransports (
922927 settings ,
923928 threadPool ,
924929 bigArrays ,
@@ -928,6 +933,7 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
928933 networkService ,
929934 dispatcher ,
930935 clusterSettings ,
936+ secureTransportSettingsProvider ,
931937 tracer
932938 );
933939 }
@@ -944,16 +950,15 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
944950 );
945951 // TODO close odshst
946952 final SecurityHttpServerTransport odshst = new SecurityHttpServerTransport (
947- settings ,
953+ migrateSettings ( settings ) ,
948954 networkService ,
949955 bigArrays ,
950956 threadPool ,
951- sks ,
952- evaluateSslExceptionHandler (),
953957 xContentRegistry ,
954958 validatingDispatcher ,
955959 clusterSettings ,
956960 sharedGroupFactory ,
961+ secureTransportSettingsProvider ,
957962 tracer ,
958963 securityRestHandler
959964 );
@@ -963,14 +968,15 @@ public Map<String, Supplier<HttpServerTransport>> getHttpTransports(
963968 return Collections .singletonMap (
964969 "org.opensearch.security.http.SecurityHttpServerTransport" ,
965970 () -> new SecurityNonSslHttpServerTransport (
966- settings ,
971+ migrateSettings ( settings ) ,
967972 networkService ,
968973 bigArrays ,
969974 threadPool ,
970975 xContentRegistry ,
971976 dispatcher ,
972977 clusterSettings ,
973978 sharedGroupFactory ,
979+ secureTransportSettingsProvider ,
974980 tracer ,
975981 securityRestHandler
976982 )
@@ -2005,6 +2011,11 @@ public SecurityTokenManager getTokenManager() {
20052011 return tokenManager ;
20062012 }
20072013
2014+ @ Override
2015+ public Optional <SecureSettingsFactory > getSecureSettingFactory (Settings settings ) {
2016+ return Optional .of (new OpenSearchSecureSettingsFactory (settings , sks , sslExceptionHandler ));
2017+ }
2018+
20082019 public static class GuiceHolder implements LifecycleComponent {
20092020
20102021 private static RepositoriesService repositoriesService ;
0 commit comments