
com.floragunn.searchguard.dlic.rest.api.SgConfigAction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dlic-search-guard-rest-api Show documentation
Show all versions of dlic-search-guard-rest-api Show documentation
Provides admin functionality over the REST API
/*
* Copyright 2016-2017 by floragunn GmbH - All rights reserved
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed here is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* This software is free of charge for non-commercial and academic use.
* For commercial use in a production environment you have to obtain a license
* from https://floragunn.com
*
*/
package com.floragunn.searchguard.dlic.rest.api;
import java.nio.file.Path;
import org.elasticsearch.client.Client;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.collect.Tuple;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.rest.BytesRestResponse;
import org.elasticsearch.rest.RestController;
import org.elasticsearch.rest.RestRequest;
import org.elasticsearch.rest.RestRequest.Method;
import org.elasticsearch.rest.RestResponse;
import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.threadpool.ThreadPool;
import com.floragunn.searchguard.auditlog.AuditLog;
import com.floragunn.searchguard.configuration.AdminDNs;
import com.floragunn.searchguard.configuration.IndexBaseConfigurationRepository;
import com.floragunn.searchguard.configuration.PrivilegesEvaluator;
import com.floragunn.searchguard.dlic.rest.validation.AbstractConfigurationValidator;
import com.floragunn.searchguard.dlic.rest.validation.NoOpValidator;
import com.floragunn.searchguard.ssl.transport.PrincipalExtractor;
import com.floragunn.searchguard.support.ConfigConstants;
public class SgConfigAction extends AbstractApiAction {
@Inject
public SgConfigAction(final Settings settings, final Path configPath, final RestController controller, final Client client,
final AdminDNs adminDNs, final IndexBaseConfigurationRepository cl, final ClusterService cs,
final PrincipalExtractor principalExtractor, final PrivilegesEvaluator evaluator, ThreadPool threadPool, AuditLog auditLog) {
super(settings, configPath, controller, client, adminDNs, cl, cs, principalExtractor, evaluator, threadPool, auditLog);
controller.registerHandler(Method.GET, "/_searchguard/api/sgconfig/", this);
}
@Override
protected Tuple handleGet(RestRequest request, Client client,
final Settings.Builder additionalSettingsBuilder) throws Throwable {
final Settings configurationSettings = loadAsSettings(getConfigName());
return new Tuple(new String[0],
new BytesRestResponse(RestStatus.OK, convertToJson(configurationSettings)));
}
@Override
protected Tuple handlePut(final RestRequest request, final Client client,
final Settings.Builder additionalSettings) throws Throwable {
return notImplemented(Method.PUT);
}
@Override
protected Tuple handleDelete(final RestRequest request, final Client client,
final Settings.Builder additionalSettings) throws Throwable {
return notImplemented(Method.DELETE);
}
@Override
protected AbstractConfigurationValidator getValidator(Method method, BytesReference ref) {
return new NoOpValidator(method, ref);
}
@Override
protected String getConfigName() {
return ConfigConstants.CONFIGNAME_CONFIG;
}
@Override
protected Endpoint getEndpoint() {
return Endpoint.SGCONFIG;
}
@Override
protected String getResourceName() {
// not needed, no single resource
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy