1 6 7 package org.manentia.kasai.audit; 8 9 import com.koala.commons.NonCriticalException; 10 import com.koala.commons.audit.AuditBean; 11 import com.koala.commons.log.Log; 12 import com.koala.commons.xml.XMLUtil; 13 import java.sql.SQLException ; 14 import java.text.DateFormat ; 15 import java.text.SimpleDateFormat ; 16 import java.util.*; 17 import java.util.logging.Level ; 18 import org.apache.commons.lang.StringUtils; 19 import org.apache.commons.lang.exception.ExceptionUtils; 20 import org.manentia.kasai.exceptions.DataAccessException; 21 import org.manentia.kasai.util.Constants; 22 import org.manentia.kasai.exceptions.CannotAuditException; 23 import org.manentia.kasai.exceptions.InvalidAttributesException; 24 import org.w3c.dom.Document ; 25 26 30 public class AuditHandler { 31 32 public static Collection listEntries(java.util.Date dateFrom, 33 java.util.Date dateTo, 34 java.lang.String user, 35 java.lang.String operation) throws NonCriticalException, DataAccessException { 36 37 Log.getInstance(Constants.PROPERTY_FILE).write(AuditHandler.class.getName(), "listEntries", 38 "Enter (dateFrom=" + dateToString(dateFrom) + 39 ", dateTo=" + dateToString(dateTo) + 40 ", user=" + StringUtils.defaultString(user, "<null>") + 41 ", operation=" + StringUtils.defaultString(operation, "<null>") + ")" 42 , java.util.logging.Level.INFO); 43 44 ResourceBundle res = ResourceBundle.getBundle(Constants.PROPERTY_FILE); 45 int maxRecords = Integer.parseInt(res.getString("core.max.list.records")); 46 Collection result = null; 47 48 try { 49 result = AuditBean.list(dateFrom, dateTo, user, operation, "audit", Constants.PROPERTY_FILE, Constants.DATABASE_SOURCE, null, null, maxRecords); 50 }catch (SQLException sqle){ 51 Log.getInstance(Constants.PROPERTY_FILE).write (AuditHandler.class.getName(), "listEntries", ExceptionUtils.getStackTrace(sqle),Level.SEVERE); 52 throw new DataAccessException(sqle); 53 } 54 55 Log.getInstance(Constants.PROPERTY_FILE).write(AuditHandler.class.getName(), "listEntries", 56 "Exit", java.util.logging.Level.INFO); 57 58 return result; 59 } 60 61 public static void createEntry( 62 String userId, 63 int returnCode, 64 String errorDescription, 65 long duration, 66 String clientIP, 67 String operation, 68 String objectID, 69 Document transactionData) throws CannotAuditException { 70 71 Log.getInstance(Constants.PROPERTY_FILE).write(AuditHandler.class.getName(), "createEntry", 72 "Enter (userId="+StringUtils.defaultString(userId, "<null>")+ 73 ", returnCode=" + returnCode + 74 ", errorDescription="+StringUtils.defaultString(errorDescription, "<null>")+ 75 ", duration=" + duration + 76 ", clientIP="+StringUtils.defaultString(clientIP, "<null>")+ 77 ", operation="+StringUtils.defaultString(operation, "<null>")+ 78 ", objectID="+StringUtils.defaultString(objectID, "<null>")+ 79 ", transactionData="+ (transactionData==null ? "<null>" : "<data>") 80 , java.util.logging.Level.INFO); 81 82 if (StringUtils.isEmpty(userId)){ 83 Log.getInstance(Constants.PROPERTY_FILE).write(AuditHandler.class.getName(), "createEntry", 84 "User was not specified", java.util.logging.Level.SEVERE); 85 86 throw new CannotAuditException(AuditHandler.class.getName() + ".createAuditEntry.noUser"); 87 } 88 89 if (StringUtils.isEmpty(operation)){ 90 Log.getInstance(Constants.PROPERTY_FILE).write(AuditHandler.class.getName(), "createEntry", 91 "Operation was not specified", java.util.logging.Level.SEVERE); 92 93 throw new CannotAuditException(AuditHandler.class.getName() + ".createAuditEntry.noOperation"); 94 } 95 96 AuditBean auditBean = new AuditBean("kasai_audit", Constants.PROPERTY_FILE, Constants.DATABASE_SOURCE, null, null); 97 auditBean.setClientIP(clientIP); 98 auditBean.setDateTime(new java.util.Date ()); 99 auditBean.setDuration(duration); 100 auditBean.setErrorDescription(errorDescription); 101 auditBean.setOperation(operation); 102 auditBean.setReturnCode(returnCode); 103 auditBean.setUser(userId); 104 auditBean.setProperty("object_id", objectID); 105 auditBean.setProperty("transaction_data", XMLUtil.documentToString(transactionData)); 106 107 try { 108 auditBean.commit(); 109 } catch (NonCriticalException nce){ 110 throw new CannotAuditException(nce); 111 } catch (SQLException sqle){ 112 Log.getInstance(Constants.PROPERTY_FILE).write (AuditHandler.class.getName(), "createEntry", ExceptionUtils.getStackTrace(sqle),Level.SEVERE); 113 throw new CannotAuditException(sqle); 114 } 115 116 Log.getInstance(Constants.PROPERTY_FILE).write(AuditHandler.class.getName(), "createEntry", 117 "Exit", java.util.logging.Level.INFO); 118 } 119 120 public static String dateToString(java.util.Date date){ 121 DateFormat format = new SimpleDateFormat ("MM-dd-yyyy hh:mm:ss:SSS"); 122 String result = "<null>"; 123 124 if (date != null){ 125 result = format.format(date); 126 } 127 128 return result; 129 } 130 } 131
| Popular Tags
|