package com.huawei.demo;
import com.huaweicloud.sdk.cfw.v1.CfwClient;
import com.huaweicloud.sdk.cfw.v1.model.ListEipResourcesRequest;
import com.huaweicloud.sdk.cfw.v1.model.ListEipResourcesResponse;
import com.huaweicloud.sdk.cfw.v1.model.EipResource;
import com.huaweicloud.sdk.cfw.v1.model.AddBlackWhiteListUsingPostRequest;
import com.huaweicloud.sdk.cfw.v1.model.AddBlackWhiteListUsingPostResponse;
import com.huaweicloud.sdk.cfw.v1.model.AddBlackWhiteListDto;
import com.huaweicloud.sdk.cfw.v1.model.ListBlackWhiteListsUsingGetRequest;
import com.huaweicloud.sdk.cfw.v1.model.ListBlackWhiteListsUsingGetResponse;
import com.huaweicloud.sdk.cfw.v1.model.ListAccessControlLogsRequest;
import com.huaweicloud.sdk.cfw.v1.model.ListAccessControlLogsResponse;
import com.huaweicloud.sdk.cfw.v1.model.UpdateBlackWhiteListUsingPutRequest;
import com.huaweicloud.sdk.cfw.v1.model.UpdateBlackWhiteListDto;
import com.huaweicloud.sdk.cfw.v1.model.UpdateBlackWhiteListUsingPutResponse;
import com.huaweicloud.sdk.cfw.v1.model.DeleteBlackWhiteListUsingDeleteRequest;
import com.huaweicloud.sdk.cfw.v1.model.DeleteBlackWhiteListUsingDeleteResponse;
import com.huaweicloud.sdk.cfw.v1.region.CfwRegion;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
public class BlackWhiteList {
public static void main(String[] args) {
String ak = "<YOUR AK>";
String sk = "<YOUR SK>";
BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk);
CfwClient client = CfwClient.newBuilder().withCredential(auth).withRegion(CfwRegion.valueOf("<REGION ID>")).build();
try {
String publicEIp = queryEip(client);
String blackWhiteListId = addBlackWhiteList(client, publicEIp);
queryBlackWhiteList(client);
queryAccessControlLong(client, publicEIp);
updateBlackWhiteList(client, blackWhiteListId);
deleteBlackWhiteList(client, blackWhiteListId);
} catch (ConnectionException e) {
System.out.println(e.getMessage());
} catch (RequestTimeoutException e) {
System.out.println(e.getMessage());
} catch (ServiceResponseException e) {
System.out.println(e.getHttpStatusCode());
System.out.println(e.getErrorCode());
System.out.println(e.getErrorMsg());
}
}
private static void deleteBlackWhiteList(CfwClient client, String blackWhiteListId) {
DeleteBlackWhiteListUsingDeleteRequest deleteBlackWhiteListUsingDeleteRequest
= new DeleteBlackWhiteListUsingDeleteRequest();
deleteBlackWhiteListUsingDeleteRequest.setListId(blackWhiteListId);
DeleteBlackWhiteListUsingDeleteResponse deleteBlackWhiteListUsingDeleteResponse
= client.deleteBlackWhiteListUsingDelete(deleteBlackWhiteListUsingDeleteRequest);
System.out.println(deleteBlackWhiteListUsingDeleteResponse.toString());
}
private static void updateBlackWhiteList(CfwClient client,String blackWhiteListId) {
UpdateBlackWhiteListUsingPutRequest updateBlackWhiteListUsingPutRequest = new UpdateBlackWhiteListUsingPutRequest();
updateBlackWhiteListUsingPutRequest.setListId(blackWhiteListId);
UpdateBlackWhiteListDto updateBlackWhiteListDto = new UpdateBlackWhiteListDto();
updateBlackWhiteListDto.setAddress("1.1.1.1");
updateBlackWhiteListDto.setAddressType(0);
updateBlackWhiteListDto.setDirection(1);
updateBlackWhiteListDto.setPort("0-65535");
updateBlackWhiteListDto.setProtocol(6);
updateBlackWhiteListDto.setListType(UpdateBlackWhiteListDto.ListTypeEnum.NUMBER_4);
updateBlackWhiteListDto.setObjectId("<YOUR ObjectId>");
updateBlackWhiteListUsingPutRequest.setBody(updateBlackWhiteListDto);
UpdateBlackWhiteListUsingPutResponse updateBlackWhiteListUsingPutResponse = client.updateBlackWhiteListUsingPut(updateBlackWhiteListUsingPutRequest);
System.out.println(updateBlackWhiteListUsingPutResponse.toString());
}
private static void queryAccessControlLong(CfwClient client,String publicEIp) {
ListAccessControlLogsRequest listAccessControlLogsRequest = new ListAccessControlLogsRequest();
listAccessControlLogsRequest.setDstIp(publicEIp);
listAccessControlLogsRequest.setFwInstanceId("<YOUR FirewallInstanceId>");
listAccessControlLogsRequest.setStartTime(1670427589817L);
listAccessControlLogsRequest.setEndTime(1670431189817L);
listAccessControlLogsRequest.setLimit(10);
ListAccessControlLogsResponse listAccessControlLogsResponse = client.listAccessControlLogs(listAccessControlLogsRequest);
System.out.println(listAccessControlLogsResponse.toString());
}
private static String queryBlackWhiteList(CfwClient client) {
ListBlackWhiteListsUsingGetRequest listBlackWhiteListsUsingGetRequest = new ListBlackWhiteListsUsingGetRequest();
listBlackWhiteListsUsingGetRequest.setObjectId("<YOUR ObjectId>");
listBlackWhiteListsUsingGetRequest.setListType(ListBlackWhiteListsUsingGetRequest.ListTypeEnum.NUMBER_4);
listBlackWhiteListsUsingGetRequest.setOffset(0);
listBlackWhiteListsUsingGetRequest.setLimit(10);
ListBlackWhiteListsUsingGetResponse listBlackWhiteListsUsingGetResponse = client.listBlackWhiteListsUsingGet(listBlackWhiteListsUsingGetRequest);
String listId = listBlackWhiteListsUsingGetResponse.getData().getRecords().get(0).getListId();
System.out.println(listId);
return listId;
}
private static String addBlackWhiteList(CfwClient client,String publicEIp) {
AddBlackWhiteListUsingPostRequest addBlackWhiteListUsingPostRequest = new AddBlackWhiteListUsingPostRequest();
AddBlackWhiteListDto addBlackWhiteListDto = new AddBlackWhiteListDto();
addBlackWhiteListDto.setListType(4);
addBlackWhiteListDto.setObjectId("<YOUR ObjectId>");
addBlackWhiteListDto.setDirection(1);
addBlackWhiteListDto.setAddress(publicEIp);
addBlackWhiteListDto.setProtocol(6);
addBlackWhiteListDto.setPort("0-65535");
addBlackWhiteListDto.setAddressType(0);
addBlackWhiteListUsingPostRequest.setBody(addBlackWhiteListDto);
AddBlackWhiteListUsingPostResponse addBlackWhiteListUsingPostResponse = client.addBlackWhiteListUsingPost(addBlackWhiteListUsingPostRequest);
String blackWhiteListId = addBlackWhiteListUsingPostResponse.getData().getId();
System.out.println(blackWhiteListId);
return blackWhiteListId;
}
private static String queryEip(CfwClient client) {
ListEipResourcesRequest listEipResourcesRequest = new ListEipResourcesRequest();
listEipResourcesRequest.setObjectId("<YOUR ObjectId>");
listEipResourcesRequest.setLimit(10);
listEipResourcesRequest.setOffset(0);
listEipResourcesRequest.setSync(ListEipResourcesRequest.SyncEnum.NUMBER_1);
ListEipResourcesResponse listEipResourcesResponse = client.listEipResources(listEipResourcesRequest);
EipResource eipResource = listEipResourcesResponse.getData().getRecords().get(0);
String publicEIp = eipResource.getPublicIp();
System.out.println(publicEIp);
return publicEIp;
}
}