Search in sources :

Example 1 with AbstractRestChannel

use of org.elasticsearch.rest.AbstractRestChannel in project elasticsearch by elastic.

the class RestTableTests method assertResponseContentType.

private RestResponse assertResponseContentType(Map<String, List<String>> headers, String mediaType) throws Exception {
    FakeRestRequest requestWithAcceptHeader = new FakeRestRequest.Builder(xContentRegistry()).withHeaders(headers).build();
    table.startRow();
    table.addCell("foo");
    table.addCell("foo");
    table.addCell("foo");
    table.addCell("foo");
    table.addCell("foo");
    table.addCell("foo");
    table.addCell("foo");
    table.addCell("foo");
    table.endRow();
    RestResponse response = buildResponse(table, new AbstractRestChannel(requestWithAcceptHeader, true) {

        @Override
        public void sendResponse(RestResponse response) {
        }
    });
    assertThat(response.contentType(), equalTo(mediaType));
    return response;
}
Also used : RestResponse(org.elasticsearch.rest.RestResponse) FakeRestRequest(org.elasticsearch.test.rest.FakeRestRequest) AbstractRestChannel(org.elasticsearch.rest.AbstractRestChannel)

Example 2 with AbstractRestChannel

use of org.elasticsearch.rest.AbstractRestChannel in project elasticsearch by elastic.

the class DedicatedClusterSnapshotRestoreIT method testThatSensitiveRepositorySettingsAreNotExposed.

public void testThatSensitiveRepositorySettingsAreNotExposed() throws Exception {
    Settings nodeSettings = Settings.builder().put().build();
    logger.info("--> start two nodes");
    internalCluster().startNodes(2, nodeSettings);
    // Register mock repositories
    client().admin().cluster().preparePutRepository("test-repo").setType("mock").setSettings(Settings.builder().put("location", randomRepoPath()).put(MockRepository.Plugin.USERNAME_SETTING.getKey(), "notsecretusername").put(MockRepository.Plugin.PASSWORD_SETTING.getKey(), "verysecretpassword")).get();
    NodeClient nodeClient = internalCluster().getInstance(NodeClient.class);
    RestGetRepositoriesAction getRepoAction = new RestGetRepositoriesAction(nodeSettings, mock(RestController.class), internalCluster().getInstance(SettingsFilter.class));
    RestRequest getRepoRequest = new FakeRestRequest();
    getRepoRequest.params().put("repository", "test-repo");
    final CountDownLatch getRepoLatch = new CountDownLatch(1);
    final AtomicReference<AssertionError> getRepoError = new AtomicReference<>();
    getRepoAction.handleRequest(getRepoRequest, new AbstractRestChannel(getRepoRequest, true) {

        @Override
        public void sendResponse(RestResponse response) {
            try {
                assertThat(response.content().utf8ToString(), containsString("notsecretusername"));
                assertThat(response.content().utf8ToString(), not(containsString("verysecretpassword")));
            } catch (AssertionError ex) {
                getRepoError.set(ex);
            }
            getRepoLatch.countDown();
        }
    }, nodeClient);
    assertTrue(getRepoLatch.await(1, TimeUnit.SECONDS));
    if (getRepoError.get() != null) {
        throw getRepoError.get();
    }
    RestClusterStateAction clusterStateAction = new RestClusterStateAction(nodeSettings, mock(RestController.class), internalCluster().getInstance(SettingsFilter.class));
    RestRequest clusterStateRequest = new FakeRestRequest();
    final CountDownLatch clusterStateLatch = new CountDownLatch(1);
    final AtomicReference<AssertionError> clusterStateError = new AtomicReference<>();
    clusterStateAction.handleRequest(clusterStateRequest, new AbstractRestChannel(clusterStateRequest, true) {

        @Override
        public void sendResponse(RestResponse response) {
            try {
                assertThat(response.content().utf8ToString(), containsString("notsecretusername"));
                assertThat(response.content().utf8ToString(), not(containsString("verysecretpassword")));
            } catch (AssertionError ex) {
                clusterStateError.set(ex);
            }
            clusterStateLatch.countDown();
        }
    }, nodeClient);
    assertTrue(clusterStateLatch.await(1, TimeUnit.SECONDS));
    if (clusterStateError.get() != null) {
        throw clusterStateError.get();
    }
}
Also used : NodeClient(org.elasticsearch.client.node.NodeClient) RestClusterStateAction(org.elasticsearch.rest.action.admin.cluster.RestClusterStateAction) RestResponse(org.elasticsearch.rest.RestResponse) RestGetRepositoriesAction(org.elasticsearch.rest.action.admin.cluster.RestGetRepositoriesAction) RestController(org.elasticsearch.rest.RestController) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) FakeRestRequest(org.elasticsearch.test.rest.FakeRestRequest) SettingsFilter(org.elasticsearch.common.settings.SettingsFilter) RestRequest(org.elasticsearch.rest.RestRequest) FakeRestRequest(org.elasticsearch.test.rest.FakeRestRequest) AbstractRestChannel(org.elasticsearch.rest.AbstractRestChannel) Settings(org.elasticsearch.common.settings.Settings)

Aggregations

AbstractRestChannel (org.elasticsearch.rest.AbstractRestChannel)2 RestResponse (org.elasticsearch.rest.RestResponse)2 FakeRestRequest (org.elasticsearch.test.rest.FakeRestRequest)2 CountDownLatch (java.util.concurrent.CountDownLatch)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1 NodeClient (org.elasticsearch.client.node.NodeClient)1 Settings (org.elasticsearch.common.settings.Settings)1 SettingsFilter (org.elasticsearch.common.settings.SettingsFilter)1 RestController (org.elasticsearch.rest.RestController)1 RestRequest (org.elasticsearch.rest.RestRequest)1 RestClusterStateAction (org.elasticsearch.rest.action.admin.cluster.RestClusterStateAction)1 RestGetRepositoriesAction (org.elasticsearch.rest.action.admin.cluster.RestGetRepositoriesAction)1