1.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/rest/HlasovaniREST.java Sun Jun 20 14:46:47 2010 +0200
1.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/rest/HlasovaniREST.java Sat Jan 15 18:14:15 2011 +0100
1.3 @@ -1,5 +1,6 @@
1.4 package cz.frantovo.nekurak.rest;
1.5
1.6 +import cz.frantovo.nekurak.posluchac.OchranaProtiCSRF;
1.7 import cz.frantovo.nekurak.util.HttpPozadavek;
1.8 import cz.frantovo.nekurak.web.HledacSluzby;
1.9 import cz.frantovo.nekurak.xml.HlasXML;
1.10 @@ -23,7 +24,16 @@
1.11 @Consumes(MIME_XML)
1.12 @Produces(MIME_TEXT)
1.13 public String hlasuj(HlasXML xml) {
1.14 + zkontrolujCSRF(pozadavek, xml);
1.15 hledac.getPodnikEJB().hlasuj(xml.getPodnik(), xml.isKourit(), HttpPozadavek.getIPadresa(pozadavek));
1.16 return "ok";
1.17 }
1.18 +
1.19 + private static void zkontrolujCSRF(HttpServletRequest pozadavek, HlasXML xml) throws RuntimeException {
1.20 + String csrfTokenOcekavany = (String) pozadavek.getSession().getAttribute(OchranaProtiCSRF.NAZEV_ATRIBUTU);
1.21 + String csrfTokenObdrzeny = xml.getCsrfToken();
1.22 + if (csrfTokenOcekavany == null || !csrfTokenOcekavany.equals(csrfTokenObdrzeny)) {
1.23 + throw new RuntimeException("CSRF token zaslaný klientem neodpovídá očekávanému.");
1.24 + }
1.25 + }
1.26 }