|  | @@ -1,94 +0,0 @@
 | 
	
		
			
				|  |  | -/*
 | 
	
		
			
				|  |  | - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 | 
	
		
			
				|  |  | - * or more contributor license agreements. Licensed under the Elastic License
 | 
	
		
			
				|  |  | - * 2.0; you may not use this file except in compliance with the Elastic License
 | 
	
		
			
				|  |  | - * 2.0.
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -package org.elasticsearch.xpack.entsearch;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import org.apache.http.util.EntityUtils;
 | 
	
		
			
				|  |  | -import org.elasticsearch.client.Request;
 | 
	
		
			
				|  |  | -import org.elasticsearch.client.Response;
 | 
	
		
			
				|  |  | -import org.elasticsearch.client.ResponseException;
 | 
	
		
			
				|  |  | -import org.elasticsearch.common.bytes.BytesReference;
 | 
	
		
			
				|  |  | -import org.elasticsearch.common.settings.Settings;
 | 
	
		
			
				|  |  | -import org.elasticsearch.common.util.concurrent.ThreadContext;
 | 
	
		
			
				|  |  | -import org.elasticsearch.common.xcontent.XContentHelper;
 | 
	
		
			
				|  |  | -import org.elasticsearch.test.SecuritySettingsSourceField;
 | 
	
		
			
				|  |  | -import org.elasticsearch.test.rest.ESRestTestCase;
 | 
	
		
			
				|  |  | -import org.elasticsearch.xcontent.XContentBuilder;
 | 
	
		
			
				|  |  | -import org.elasticsearch.xcontent.XContentType;
 | 
	
		
			
				|  |  | -import org.elasticsearch.xcontent.json.JsonXContent;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import java.io.IOException;
 | 
	
		
			
				|  |  | -import java.util.Map;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import static org.hamcrest.Matchers.is;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -public class ConnectorSecretsSystemIndexIT extends ESRestTestCase {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    static final String BASIC_AUTH_VALUE = basicAuthHeaderValue(
 | 
	
		
			
				|  |  | -        "x_pack_rest_user",
 | 
	
		
			
				|  |  | -        SecuritySettingsSourceField.TEST_PASSWORD_SECURE_STRING
 | 
	
		
			
				|  |  | -    );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    @Override
 | 
	
		
			
				|  |  | -    protected Settings restClientSettings() {
 | 
	
		
			
				|  |  | -        return Settings.builder().put(ThreadContext.PREFIX + ".Authorization", BASIC_AUTH_VALUE).build();
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    public void testConnectorSecretsCRUD() throws Exception {
 | 
	
		
			
				|  |  | -        // post secret
 | 
	
		
			
				|  |  | -        final String secretJson = getPostSecretJson();
 | 
	
		
			
				|  |  | -        Request postRequest = new Request("POST", "/_connector/_secret/");
 | 
	
		
			
				|  |  | -        postRequest.setJsonEntity(secretJson);
 | 
	
		
			
				|  |  | -        Response postResponse = client().performRequest(postRequest);
 | 
	
		
			
				|  |  | -        assertThat(postResponse.getStatusLine().getStatusCode(), is(200));
 | 
	
		
			
				|  |  | -        Map<String, Object> responseMap = getResponseMap(postResponse);
 | 
	
		
			
				|  |  | -        assertThat(responseMap.size(), is(1));
 | 
	
		
			
				|  |  | -        assertTrue(responseMap.containsKey("id"));
 | 
	
		
			
				|  |  | -        final String id = responseMap.get("id").toString();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // get secret
 | 
	
		
			
				|  |  | -        Request getRequest = new Request("GET", "/_connector/_secret/" + id);
 | 
	
		
			
				|  |  | -        Response getResponse = client().performRequest(getRequest);
 | 
	
		
			
				|  |  | -        assertThat(getResponse.getStatusLine().getStatusCode(), is(200));
 | 
	
		
			
				|  |  | -        responseMap = getResponseMap(getResponse);
 | 
	
		
			
				|  |  | -        assertThat(responseMap.size(), is(2));
 | 
	
		
			
				|  |  | -        assertTrue(responseMap.containsKey("id"));
 | 
	
		
			
				|  |  | -        assertTrue(responseMap.containsKey("value"));
 | 
	
		
			
				|  |  | -        assertThat(responseMap.get("value"), is("test secret"));
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    public void testPostInvalidSecretBody() throws Exception {
 | 
	
		
			
				|  |  | -        Request postRequest = new Request("POST", "/_connector/_secret/");
 | 
	
		
			
				|  |  | -        postRequest.setJsonEntity("""
 | 
	
		
			
				|  |  | -            {"something":"else"}""");
 | 
	
		
			
				|  |  | -        ResponseException re = expectThrows(ResponseException.class, () -> client().performRequest(postRequest));
 | 
	
		
			
				|  |  | -        Response getResponse = re.getResponse();
 | 
	
		
			
				|  |  | -        assertThat(getResponse.getStatusLine().getStatusCode(), is(400));
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    public void testGetNonExistingSecret() {
 | 
	
		
			
				|  |  | -        Request getRequest = new Request("GET", "/_connector/_secret/123");
 | 
	
		
			
				|  |  | -        ResponseException re = expectThrows(ResponseException.class, () -> client().performRequest(getRequest));
 | 
	
		
			
				|  |  | -        Response getResponse = re.getResponse();
 | 
	
		
			
				|  |  | -        assertThat(getResponse.getStatusLine().getStatusCode(), is(404));
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    private String getPostSecretJson() throws IOException {
 | 
	
		
			
				|  |  | -        try (XContentBuilder builder = JsonXContent.contentBuilder()) {
 | 
	
		
			
				|  |  | -            builder.startObject();
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -                builder.field("value", "test secret");
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            builder.endObject();
 | 
	
		
			
				|  |  | -            return BytesReference.bytes(builder).utf8ToString();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    private Map<String, Object> getResponseMap(Response response) throws IOException {
 | 
	
		
			
				|  |  | -        return XContentHelper.convertToMap(XContentType.JSON.xContent(), EntityUtils.toString(response.getEntity()), false);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -}
 |