# HG changeset patch # User František Kučera # Date 1234636293 -3600 # Node ID b22c06c8a55cf9b26b07683b5dc638952f9ccde5 # Parent 571d37e53ecdd2d1c09b70d4a86d34f5f0149a31 Generátor generuje souhrny i překládá IP adresy na domény diff -r 571d37e53ecd -r b22c06c8a55c java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java Sat Feb 14 14:27:53 2009 +0100 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java Sat Feb 14 19:31:33 2009 +0100 @@ -3,14 +3,12 @@ import cz.frantovo.hrisniciSpameri.dao.CilDAO; import cz.frantovo.hrisniciSpameri.dao.SouhrnDAO; import cz.frantovo.hrisniciSpameri.dto.Cil; -import cz.frantovo.hrisniciSpameri.dto.SitovaAdresa; import cz.frantovo.hrisniciSpameri.dto.Souhrn; import java.io.Serializable; import java.sql.Date; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Collection; import java.util.logging.Level; import java.util.logging.Logger; @@ -23,7 +21,6 @@ private static final long serialVersionUID = 7932392366943861342L; private static final Logger log = Logger.getLogger(DenniSouhrn.class.getName()); - private static final long DEN = 1000 * 60 * 60 * 24; private static String formatDataVzor = "yyyy-MM-dd"; public static DateFormat formatData = new SimpleDateFormat(formatDataVzor); private Date den; @@ -82,17 +79,9 @@ return cil; } - /** - * Ve výchozím stavu zobrazujeme souhrn za předešlý den. - * @return včerejšek - */ - private static Date getVychoziDen() { - return new Date(System.currentTimeMillis() - DEN); - } - private void nastavVychoziDen() { log.log(Level.FINE, "Nastavuji den na výchozí hodnotu."); - setDen(getVychoziDen()); + setDen(SouhrnDAO.getVychoziDen()); } public Collection getSouhrn() { diff -r 571d37e53ecd -r b22c06c8a55c java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/GenerovaciServlet.java --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/GenerovaciServlet.java Sat Feb 14 14:27:53 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -package cz.frantovo.hrisniciSpameri; - -/** - * Servlet, který vygeneruje denní souhrn. - * Pokud pro daný den už souhr vygenerovaný byl, smaže ho. - * Vše probíhá v jedné transakci. - * @author fiki - */ -public class GenerovaciServlet { - -} diff -r 571d37e53ecd -r b22c06c8a55c java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/Sprava.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/Sprava.java Sat Feb 14 19:31:33 2009 +0100 @@ -0,0 +1,33 @@ +package cz.frantovo.hrisniciSpameri; + +import cz.frantovo.hrisniciSpameri.dao.CilDAO; +import cz.frantovo.hrisniciSpameri.dao.GeneratorSouhrnuDAO; +import cz.frantovo.hrisniciSpameri.dto.Cil; +import java.io.Serializable; +import java.util.Collection; +import java.sql.Date; + +/** + * Beana, která vygeneruje denní souhrn. + * Pokud pro daný den už souhr vygenerovaný byl, smaže ho. + * Vše probíhá v jedné transakci. + * @author fiki + */ +public class Sprava implements Serializable { + + private static final long serialVersionUID = -9048188038805055786L; + + public boolean getGenerujSouhrn() { + Date den = new Date(System.currentTimeMillis()); + Collection cile = new CilDAO().getCile(); + for (Cil c : cile) { + if (c.getId() == 1) { + new GeneratorSouhrnuDAO().generujSouhrn(c, den); + } + } + + + + return true; + } +} diff -r 571d37e53ecd -r b22c06c8a55c java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java Sat Feb 14 14:27:53 2009 +0100 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.java Sat Feb 14 19:31:33 2009 +0100 @@ -1,6 +1,7 @@ package cz.frantovo.hrisniciSpameri.dao; import cz.frantovo.hrisniciSpameri.dto.Cil; +import java.net.InetAddress; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; @@ -16,7 +17,8 @@ private enum SQL { - VLOZ_SOUHRN + VLOZ_SOUHRN, + SMAZ_SOUHRNY } /** @@ -24,7 +26,7 @@ * @param cil cíl, pro který generujeme souhrn * @param den den, pro který souhrn generujeme. */ - private void generujSouhrn(Cil cil, Date den) { + public void generujSouhrn(Cil cil, Date den) { Connection dbZdroj = getSpojeni(cil.getDatabaze()); Connection dbSouhrn = getSpojeni(null); @@ -32,8 +34,18 @@ /** TODO: Chyba spojení */ } else { PreparedStatement ps = null; + PreparedStatement psSmazat = null; ResultSet rs = null; try { + log.log(Level.SEVERE, "AUTOCOMIT: " + dbSouhrn.getAutoCommit()); + dbSouhrn.setAutoCommit(false); + + /** pokud už něco vygenerovaného pro daný den a cíl máme, smažeme to */ + psSmazat = dbSouhrn.prepareStatement(getSQL(SQL.SMAZ_SOUHRNY)); + psSmazat.setInt(1, cil.getId()); + psSmazat.setDate(2, den); + psSmazat.executeUpdate(); + ps = dbZdroj.prepareStatement(cil.getSelekt()); ps.setDate(1, den); rs = ps.executeQuery(); @@ -46,7 +58,7 @@ */ psSouhrn.setDate(1, den); psSouhrn.setString(2, rs.getString("ip")); - psSouhrn.setString(3, "TODO: přeložit " + rs.getString("ip")); + psSouhrn.setString(3, prelozIP(rs.getString("ip"))); psSouhrn.setInt(4, rs.getInt("pocet")); psSouhrn.setInt(5, cil.getId()); psSouhrn.executeUpdate(); @@ -57,7 +69,7 @@ log.log(Level.SEVERE, "Chyba při generování souhrnu.", e); } finally { zavri(dbZdroj, ps, rs); - zavri(dbSouhrn, null, null); + zavri(dbSouhrn, psSmazat, null); } } } @@ -67,9 +79,26 @@ * @param den den, pro který souhrny generujeme. */ public void generujSouhrny(Date den) { + if (den == null) { + den = SouhrnDAO.getVychoziDen(); + } + Collection cile = new CilDAO().getCile(); for (Cil c : cile) { generujSouhrn(c, den); } } + + /** + * Přeloží IP adresu na doménu + * @param ip IP adresa + * @return doména + */ + private static String prelozIP(String ip) { + try { + return InetAddress.getByName(ip).getHostName(); + } catch (Exception e) { + return "Chyba: nepodařilo se přeložit."; + } + } } diff -r 571d37e53ecd -r b22c06c8a55c java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.sql.xml --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.sql.xml Sat Feb 14 14:27:53 2009 +0100 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/GeneratorSouhrnuDAO.sql.xml Sat Feb 14 19:31:33 2009 +0100 @@ -8,4 +8,25 @@ VALUES (?,?,?,?,?) ]]> + + + + + + + \ No newline at end of file diff -r 571d37e53ecd -r b22c06c8a55c java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sat Feb 14 14:27:53 2009 +0100 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sat Feb 14 19:31:33 2009 +0100 @@ -25,6 +25,8 @@ SOUHRN_ZA_OBDOBI_CIL } + private static final long DEN = 1000 * 60 * 60 * 24; + /** * Získá z databáze souhrn útoků. Buď pro konkrétní den nebo pro dané období. * @param zacatek začátek období nebo konkrétní den @@ -91,4 +93,12 @@ return souhrn; } + + /** + * Ve výchozím stavu zobrazujeme souhrn za předešlý den. + * @return včerejšek + */ + public static Date getVychoziDen() { + return new Date(System.currentTimeMillis() - DEN); + } } diff -r 571d37e53ecd -r b22c06c8a55c java/HrisniciSpameri/web/sprava/index.jspx --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/HrisniciSpameri/web/sprava/index.jspx Sat Feb 14 19:31:33 2009 +0100 @@ -0,0 +1,14 @@ + + + + + + + + +