5757import org .opensearch .security .dlic .rest .api .SecurityRestApiActions ;
5858import org .opensearch .security .filter .SecurityRestFilter ;
5959import org .opensearch .security .http .SecurityHttpServerTransport ;
60+ import org .opensearch .security .rest .SecurityConfigUpdateAction ;
61+ import org .opensearch .security .rest .SecurityWhoAmIAction ;
6062import org .opensearch .security .ssl .OpenSearchSecuritySSLPlugin ;
6163import org .opensearch .security .ssl .rest .SecuritySSLReloadCertsAction ;
6264import org .opensearch .security .ssl .rest .SecuritySSLCertsInfoAction ;
108110import org .opensearch .index .IndexModule ;
109111import org .opensearch .index .cache .query .QueryCache ;
110112import org .opensearch .index .shard .SearchOperationListener ;
113+ import org .opensearch .indices .IndicesService ;
111114import org .opensearch .indices .SystemIndexDescriptor ;
112115import org .opensearch .indices .breaker .CircuitBreakerService ;
113116import org .opensearch .plugins .ClusterPlugin ;
@@ -459,7 +462,8 @@ public List<RestHandler> getRestHandlers(Settings settings, RestController restC
459462 handlers .add (new DashboardsInfoAction (settings , restController , Objects .requireNonNull (evaluator ), Objects .requireNonNull (threadPool )));
460463 handlers .add (new TenantInfoAction (settings , restController , Objects .requireNonNull (evaluator ), Objects .requireNonNull (threadPool ),
461464 Objects .requireNonNull (cs ), Objects .requireNonNull (adminDns ), Objects .requireNonNull (cr )));
462-
465+ handlers .add (new SecurityConfigUpdateAction (settings , restController ,Objects .requireNonNull (threadPool ), adminDns , configPath , principalExtractor ));
466+ handlers .add (new SecurityWhoAmIAction (settings ,restController ,Objects .requireNonNull (threadPool ), adminDns , configPath , principalExtractor ));
463467 if (sslCertReloadEnabled ) {
464468 handlers .add (new SecuritySSLReloadCertsAction (settings , restController , sks , Objects .requireNonNull (threadPool ), Objects .requireNonNull (adminDns )));
465469 }
@@ -776,7 +780,7 @@ public Collection<Object> createComponents(Client localClient, ClusterService cl
776780 auditLog = new NullAuditLog ();
777781 privilegesInterceptor = new PrivilegesInterceptor (resolver , clusterService , localClient , threadPool );
778782 } else {
779- dlsFlsValve = new DlsFlsValveImpl ();
783+ dlsFlsValve = new DlsFlsValveImpl (settings , localClient , clusterService , resolver , xContentRegistry , threadPool . getThreadContext () );
780784 auditLog = new AuditLogImpl (settings , configPath , localClient , threadPool , resolver , clusterService , environment );
781785 privilegesInterceptor = new PrivilegesInterceptorImpl (resolver , clusterService , localClient , threadPool );
782786 }
@@ -795,10 +799,10 @@ public Collection<Object> createComponents(Client localClient, ClusterService cl
795799 // DLS-FLS is enabled if not client and not disabled and not SSL only.
796800 final boolean dlsFlsEnabled = !SSLConfig .isSslOnlyMode ();
797801 evaluator = new PrivilegesEvaluator (clusterService , threadPool , cr , resolver , auditLog ,
798- settings , privilegesInterceptor , cih , irr , dlsFlsEnabled );
799-
800- sf = new SecurityFilter (localClient , settings , evaluator , adminDns , dlsFlsValve , auditLog , threadPool , cs , compatConfig , irr , backendRegistry );
802+ settings , privilegesInterceptor , cih , irr , dlsFlsEnabled , namedXContentRegistry );
801803
804+ sf = new SecurityFilter (localClient , settings , evaluator , adminDns , dlsFlsValve , auditLog , threadPool , cs , compatConfig , irr , backendRegistry , namedXContentRegistry );
805+
802806 final String principalExtractorClass = settings .get (SSLConfigConstants .SECURITY_SSL_TRANSPORT_PRINCIPAL_EXTRACTOR_CLASS , null );
803807
804808 if (principalExtractorClass == null ) {
@@ -1122,12 +1126,14 @@ public static class GuiceHolder implements LifecycleComponent {
11221126
11231127 private static RepositoriesService repositoriesService ;
11241128 private static RemoteClusterService remoteClusterService ;
1129+ private static IndicesService indicesService ;
11251130
11261131 @ Inject
11271132 public GuiceHolder (final RepositoriesService repositoriesService ,
1128- final TransportService remoteClusterService ) {
1133+ final TransportService remoteClusterService , IndicesService indicesService ) {
11291134 GuiceHolder .repositoriesService = repositoriesService ;
11301135 GuiceHolder .remoteClusterService = remoteClusterService .getRemoteClusterService ();
1136+ GuiceHolder .indicesService = indicesService ;
11311137 }
11321138
11331139 public static RepositoriesService getRepositoriesService () {
@@ -1138,6 +1144,10 @@ public static RemoteClusterService getRemoteClusterService() {
11381144 return remoteClusterService ;
11391145 }
11401146
1147+ public static IndicesService getIndicesService () {
1148+ return indicesService ;
1149+ }
1150+
11411151 @ Override
11421152 public void close () {
11431153 }
0 commit comments