![JAR search and dependency download from the Maven repository](/logo.png)
org.bdware.doip.audit.OriginalAuditDB Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of doip-audit-tool Show documentation
Show all versions of doip-audit-tool Show documentation
doip audit tool developed by bdware
The newest version!
package org.bdware.doip.audit;
import com.google.gson.Gson;
import com.nimbusds.jose.util.Base64;
import io.netty.handler.codec.base64.Base64Encoder;
import org.apache.commons.codec.Charsets;
import org.bdware.doip.audit.writer.AuditOriginalLog;
import java.nio.charset.StandardCharsets;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.TimerTask;
public class OriginalAuditDB extends BasicDB {
public OriginalAuditDB(String driverClass, String url, String user, String password) {
super(driverClass, url, user, password);
}
public String toString(byte[] msg) {
return Base64.encode(msg).toString();
}
public byte[] toByteArray(String msg) {
return Base64.from(msg).decode();
}
public int add(String tableName, String req_hash, byte[] req_msg, String resp_hash, byte[] resp_msg, String protocal_msg) {
try {
Connection conn = getConn();
String sql = "insert into " + formatTableName(tableName) + "(req_hash, req_msg, resp_hash, resp_msg, protocal_msg, create_time) values (?, ?, ?, ?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, req_hash);
ps.setString(2, toString(req_msg));
ps.setString(3, resp_hash);
ps.setString(4, toString(resp_msg));
ps.setString(5, protocal_msg);
ps.setTimestamp(6, new Timestamp(System.currentTimeMillis()));
int count = ps.executeUpdate();
ps.close();
conn.close();
return count;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public int remove(String tableName, String req_hash, String resp_hash) {
try {
Connection conn = getConn();
String sql = "delete from " + formatTableName(tableName) + " where req_hash = ? and resp_hash = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, req_hash);
ps.setString(2, resp_hash);
int count = ps.executeUpdate();
ps.close();
conn.close();
return count;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public int removeByTime(String tableName, String field, long timeStamp) {
try {
Connection conn = getConn();
String sql = "delete from " + formatTableName(tableName) + " where " + field + " < ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setTimestamp(1, new Timestamp(timeStamp));
int count = ps.executeUpdate();
ps.close();
conn.close();
return count;
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
public int modify(String tableName, String req_hash, byte[] req_msg, String resp_hash, byte[] resp_msg, String protocal_msg) {
try {
Connection conn = getConn();
String sql = "update " + formatTableName(tableName) + " set req_msg = ?, resp_msg = ?, protocal_msg = ?, create_time = ? where req_hash = ? and resp_msg = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, toString(req_msg));
ps.setString(2, toString(resp_msg));
ps.setString(3, protocal_msg);
ps.setTimestamp(4, new Timestamp(System.currentTimeMillis()));
ps.setString(5, req_hash);
ps.setString(6, resp_hash);
int count = ps.executeUpdate();
ps.close();
conn.close();
return count;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
public List retrieve(String tableName, String req_hash, String resp_hash) {
try {
Connection conn = getConn();
String sql = "select * from " + formatTableName(tableName) + " where req_hash = ? and resp_hash = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, req_hash);
ps.setString(2, resp_hash);
ResultSet rs = ps.executeQuery();
List auditOriginalLogList = new ArrayList<>();
AuditOriginalLog auditOriginalLog;
while (rs.next()) {
byte[] req_msg = toByteArray(rs.getString("req_msg"));
byte[] resp_msg = toByteArray(rs.getString("resp_msg"));
String protocal_msg = rs.getString("protocal_msg");
auditOriginalLog = new Gson().fromJson(protocal_msg, AuditOriginalLog.class);
auditOriginalLog.req_msg = req_msg;
auditOriginalLog.resp_msg = resp_msg;
auditOriginalLogList.add(auditOriginalLog);
}
ps.close();
conn.close();
return auditOriginalLogList;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public boolean isExist(String tableName, String req_hash, String resp_hash) {
boolean status = false;
try {
Connection conn = getConn();
String sql = "select * from " + formatTableName(tableName) + " where req_hash = ? and resp_hash = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, req_hash);
ps.setString(2, resp_hash);
ResultSet rs = ps.executeQuery();
if (rs.next())
status = true;
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
return status;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy