FusionInsight Manager集成对接之通过Basic认证实现用户操作

举报
ManagerDev 发表于 2021/05/21 15:47:52 2021/05/21
【摘要】 用户在某些业务场景下需要以非界面方式实现FusionInsight Manager系统的登录认证,然后执行用户相关的增、删、查询等操作。本文基于HTTP Basic认证讲解如下功能的实现:登录FusionInsight Manager系统,访问FusionInsight Manager系统并进行查询、添加、删除等操作。

场景说明

用户在某些业务场景下需要以非界面方式实现操作FusionInsight Manager系统,要求开发基于HTTP Basic认证的应用程序实现如下功能:

  • 登录FusionInsight Manager系统。
  • 访问FusionInsight Manager系统,进行查询、添加、删除等操作。

开发思路

功能分解

根据上述的业务场景进行功能分解,需要开发的功能点如表11-198所示。

表11-198 在Manager中开发的功能

序号

步骤

代码实现

1

添加用户

请参见“添加用户”。

2

查找用户

请参见“查找用户”。

3

修改用户

请参见“修改用户”。

4

删除用户

请参见“删除用户”。

5

导出用户列表

请参见“导出用户列表”。

数据准备

  • 从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/

代码样例

以下代码片段是调用firstAccess接口完成登录认证的示例,在“rest”包的“UserManager”类的main方法中。
   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);
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。