以下是一个使用Spring Boot调用Kibana REST API创建用户和角色的示例:
1. 添加依赖
在pom.xml文件中添加以下依赖:
```xml
org.springframework.boot
spring-boot-starter-web
org.apache.httpcomponents
httpclient
4.5.13
com.fasterxml.jackson.core
jackson-databind
2.12.5
```
2. 创建KibanaService类
创建一个名为KibanaService的类,该类包含用于调用Kibana REST API的方法。以下是一个示例:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@Service
public class KibanaService {
@Value("${kibana.url}")
private String kibanaUrl;
@Value("${kibana.username}")
private String kibanaUsername;
@Value("${kibana.password}")
private String kibanaPassword;
private final ObjectMapper objectMapper = new ObjectMapper();
public void createUser(String username, String password) throws IOException {
Map
requestBody = new HashMap<>();
requestBody.put("password", password);
requestBody.put("full_name", username);
String jsonBody = objectMapper.writeValueAsString(requestBody);
HttpPost request = new HttpPost(kibanaUrl + "/api/security/v1/users");
request.setHeader("Content-Type", "application/json");
request.setHeader("kbn-xsrf", "true");
request.setHeader("Authorization", "Basic " + getAuthHeader());
StringEntity entity = new StringEntity(jsonBody, ContentType.APPLICATION_JSON);