FusionInsight Manager集成对接之通过Basic认证实现用户操作
场景说明
用户在某些业务场景下需要以非界面方式实现操作FusionInsight Manager系统,要求开发基于HTTP Basic认证的应用程序实现如下功能:
- 登录FusionInsight Manager系统。
- 访问FusionInsight Manager系统,进行查询、添加、删除等操作。
开发思路
功能分解
根据上述的业务场景进行功能分解,需要开发的功能点如表11-198所示。
数据准备
- 从FusionInsight Manager的Rest API接口文档中获取webUrl以及用户想要实现的操作对应的Url。
- 从FusionInsight Manager的Rest API接口文档中获取想要实现的操作对应需要的json请求体参数和格式,并创建和保存相应的json文件。
样例代码说明
登录认证
功能介绍
实现Basic认证登录,并返回登录后的httpClient。
前提条件
配置用户的集群信息和登录帐号信息:
- 配置文件:“样例工程文件夹\conf\UserInfo.properties”。
- 参数说明:
- userName:登录Manager系统的用户名。
- password:userName对应的用户密码。
- webUrl:Manager首页地址。
填写“UserInfo.properties”文件中的参数,注意填写的准确性,可以仿照以下参数示例进行填写,其中,“IP_Address”填写FusionInsight Manager对应的浮动IP地址。
如果需要使用其他用户进行操作,请先登录FusionInsight Manager创建用户。
userName= admin
password= adminPassWord
webUrl= https://IP_Address:28443/web/
代码样例
BasicAuthAccess authAccess = new BasicAuthAccess();
HttpClient httpClient = authAccess.loginAndAccess(webUrl, userName, password, userTLSVersion);
LOG.info("Start to access REST API.");
HttpManager httpManager = new HttpManager();
String operationName = "";
String operationUrl = "";
String jsonFilePath = "";
添加用户
功能介绍
通过访问Manager接口完成添加用户。
代码样例
以下代码片段是添加用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成添加用户
operationName = "AddUser";
operationUrl = webUrl + ADD_USER_URL;
jsonFilePath = "./conf/addUser.json";
httpManager.sendHttpPostRequest(httpClient, operationUrl, jsonFilePath, operationName)
查找用户
功能简介
通过访问Manager接口完成查找用户。
代码样例
以下代码片段是查找用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成查找用户列表
operationName = "QueryUserList";
operationUrl = webUrl + QUERY_USER_LIST_URL;
String responseLineContent = httpManager.sendHttpGetRequest(httpClient, operationUrl, operationName);
LOG.info("The {} response is {}.", operationName, responseLineContent);
修改用户
功能简介
通过访问Manager接口完成修改用户。
代码样例
以下代码片段是修改用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成修改用户
operationName = "ModifyUser";
String modifyUserName = "user888";
operationUrl = webUrl + MODIFY_USER_URL + modifyUserName;
jsonFilePath = "./conf/modifyUser.json";
httpManager.sendHttpPutRequest(httpClient, operationUrl, jsonFilePath, operationName);
删除用户
功能简介
通过访问Manager接口完成删除用户。
代码样例
以下代码片段是删除用户的示例,在“rest”包的“UserManager”类的main方法中。
//访问Manager接口完成删除用户
operationName = "DeleteUser";
String deleteJsonStr = "{\"userNames\":[\"user888\"]}";
operationUrl = webUrl + DELETE_USER_URL;
httpManager.sendHttpDeleteRequest(httpClient, operationUrl, deleteJsonStr, operationName);
LOG.info("Exit main.");
导出用户列表
功能简介
通过访问Manager接口完成导出用户列表,导出用户列表需要依次调用导出和下载接口完成用户列表的导出。导出接口的输出为下载接口的输入。
代码样例
以下代码片段是导出用户列表的示例,在“rest”包的“ExportUsers”类的main方法中。
String operationName = "ExportUsers";
String exportOperationUrl = webUrl + EXPORT_URL;
HttpManager httpManager = new HttpManager();
//调用导出接口
String responseLineContent = httpManager
.sendHttpPostRequestWithString(httpClient, exportOperationUrl, StringUtils.EMPTY, operationName);
//调用下载接口
operationName = "DownloadUsers";
JSONObject jsonObj = JSON.parseObject(responseLineContent);
String downloadOperationUrl = webUrl + DOWNLOAD_URL + jsonObj.getString("fileName");
httpManager.sendHttpGetRequest(httpClient, downloadOperationUrl, operationName);
- 点赞
- 收藏
- 关注作者
评论(0)