package com.lxzn.label;
import com.eetrust.label.LabelOperator;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
//import org.apache.axis.client.Call;
//import org.apache.axis.client.Service;
public class Demo {
public static void main(String[] args) throws Exception {
String serverIp = "10.3.45.221";
int serverPort =8090;
//应用系统用户唯一标识
String identifier= "testUser";
String fileName = "D:\\lxzn_storage\\temp\\06af53c75200d781f51581fd347941181f3c2f545be0bb2e1cf624535d503b0e";
// String labelXml="5test2000012020-09-02 20-0-01[机密]机密文件21531";
String labelXml="5";
String editXml="52";
String fileName1 = "D:\\重绑的明文文件.doc";
// 223添加文件密级标志接口 TODO
binByFileLable(serverIp,serverPort,identifier,fileName,labelXml);
// 224读取密标文件密级标志接口
//readlabelByPath(serverIp, serverPort,fileName); //文件路径
// 225修改密标文件密级标志接口 TODO
editLabelByPath(serverIp, serverPort,identifier,fileName,editXml); //文件路径
// 227获取是否是密标文件接口
// isLableFileByPath(serverIp, serverPort,fileName); //文件路径
// 228获取密标文件唯一标识接口
// getFileUidByPath(serverIp, serverPort,fileName); //文件路径
// 229获取密标文件密级接口
// getFileLevelByPath(serverIp, serverPort,fileName); //文件路径
// 2210获取密标文件状态接口
// getFileStatusByPath(serverIp, serverPort,fileName); //文件路径
// 2211重新绑定文件密级标志接口
// reBindByteLabelFilePath(serverIp,serverPort,identifier,fileName,fileName1);
//检查文件是否被篡改
// chcekLabelByPath(serverIp,serverPort,fileName); //文件路径
// 226去除密标文件密级标志接口
// removeLabelByPath(serverIp,serverPort,identifier,fileName); //文件路径
}
public static void editLabelByPath(String serverIp, int serverPort,String identifier,String path,String editXml){
try{
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
//设置本地工程编码格式(UTF_8、GBK),默认为UTF_8
//labelOperator.setCharacter(CharacterEnums.UTF_8);
//默认不开启 //fase 远程调用MB服务 //true 调用本地MB服务
labelOperator.setLocalService(false);
int modifyFileLabel = labelOperator.modifyFileLabel(identifier,path,editXml);
if(modifyFileLabel == 0){
System.out.println("修改文件密级标志成功");
}else{
System.out.println("修改文件密级标志失败");
}
}catch(Exception e){
System.out.println("修改文件密级标志异常");
e.printStackTrace();
}
}
public static void binByFileLable(String serverIp, int serverPort,String identifier,String fileName,String labelXml){
try{
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
//默认不开启 //fase 远程调用MB服务 //true 调用本地MB服务
labelOperator.setLocalService(false);
//设置本地工程编码格式(UTF_8、GBK),默认为UTF_8
//labelOperator.setCharacter(CharacterEnums.UTF_8);
short fileFrom = 0;
int bindFileLabel = labelOperator.bindFileLabel(identifier, fileName , labelXml ,fileFrom);
if(bindFileLabel == 0){
System.out.println("添加文件密级标志成功");
}else{
System.out.println("添加文件密级标志失败");
}
}catch(Exception e){
System.out.println("添加文件密级标志异常");
e.printStackTrace();
}
}
public static void removeLabelByPath(String serverIp, int serverPort,String userId,String path){
FileInputStream inputFileEncrypt = null;
FileInputStream inputFileDecrypt = null;
FileOutputStream outputFile = null;
try {
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
labelOperator.setLocalService(false);
int count = labelOperator.removeFileLabel(userId, path);
System.out.println(count);
System.out.println("ok");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputFileEncrypt != null) {
try {
inputFileEncrypt.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (inputFileDecrypt != null) {
try {
inputFileDecrypt.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (outputFile != null) {
try {
outputFile.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void reBindByteLabelFilePath(String serverIp, int serverPort,String userId,String fileName1,String fileName2){
try {
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
labelOperator.setLocalService(false);
int count =labelOperator.reBindFileLabel(userId,fileName1, fileName2, 1);
System.out.println(count);
System.out.println("ok");
} catch (Exception e) {
e.printStackTrace();
System.out.println("重新绑定文件密级标志异常");
}
}
// 获取密标文件状态
public static void getFileStatusByPath(String serverIp, int serverPort,String inputFileName) {
FileInputStream inputFile = null;
try {
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
labelOperator.setLocalService(false);
int status=labelOperator.getFileStatus(inputFileName);
System.out.println(status);
System.out.println("获取密级标志文件密级状态成功");
} catch (Exception e) {
System.out.println("获取密级标志文件密级状态异常");
} finally {
if (inputFile != null) {
try {
inputFile.close();
} catch (Exception e2) {
}
}
}
}
public static String getFileLevelByPath(String serverIp, int serverPort,String inputFileName) {
FileInputStream inputFile = null;
try {
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
labelOperator.setLocalService(false);
int level =labelOperator.getFileLevel(inputFileName);
System.out.println(level);
System.out.println("获取密级标志文件密级成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("获取密级标志文件密级异常");
} finally {
if (inputFile != null) {
try {
inputFile.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return null;
}
// 获取密标文件唯一标识
public static String getFileUidByPath(String serverIp, int serverPort,String path) {
String massage = "";
try {
boolean isHttpProtocol = true;
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort, isHttpProtocol);
labelOperator.setLocalService(false);
String uuid =labelOperator.getFileUuid(path);
if ("".equals(uuid)) {
System.out.println("获取密级标志文件唯一标识失败");
} else {
System.out.println(uuid);
System.out.println("获取密级标志文件唯一标识成功");
}
massage = "成功";
} catch (Exception e) {
e.printStackTrace();
System.out.println("获取密级标志文件唯一标识异常");
massage = "失败";
}
return massage;
}
// 是否是密标文件
public static String isLableFileByPath(String serverIp, int serverPort,String path) {
String massage = "";
FileInputStream inputFile = null;
try {
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
labelOperator.setLocalService(false);
int isLabelledFile = labelOperator.isLabelledFile(path);
if (isLabelledFile == 0) {
System.out.println("不是密级标志文件");
massage = "不是密级标志文件";
} else if (isLabelledFile == 1) {
System.out.println("是密级标志文件");
massage = "是密级标志文件";
}
} catch (Exception e) {
e.printStackTrace();
massage = "获取是密级标志文件异常";
} finally {
if (inputFile != null) {
try {
inputFile.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return massage;
}
public static String readlabelByPath(String serverIp, int serverPort,String path) throws IOException{
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
//默认不开启 //fase 远程调用MB服务 //true 调用本地MB服务
labelOperator.setLocalService(false);
String readFileLabel=labelOperator.readFileLabel(path, 1);
System.out.println(readFileLabel);
return null;
}
public static String chcekLabelByPath(String serverIp, int serverPort,String inputFileName){
String massage = "";
FileInputStream inputFile = null;
try {
LabelOperator labelOperator = new LabelOperator(serverIp,serverPort);
int readFileLabel = labelOperator.checkFileLabel(inputFileName);
System.out.println(readFileLabel);
} catch (Exception e) {
e.printStackTrace();
System.out.println("文件篡改异常");
} finally {
if (inputFile != null) {
try {
inputFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return massage;
}
}