Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.06 KB | None | 0 0
  1. package com.viremp.beans;
  2.  
  3. import java.awt.AWTException;
  4. import java.io.IOException;
  5. import java.io.Serializable;
  6. import java.sql.SQLException;
  7. import java.util.Map;
  8.  
  9. import javax.annotation.PostConstruct;
  10. import javax.faces.bean.ManagedBean;
  11. import javax.faces.bean.SessionScoped;
  12. import javax.faces.context.ExternalContext;
  13. import javax.faces.context.FacesContext;
  14. import javax.servlet.http.HttpServletRequest;
  15.  
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18.  
  19. import com.viremp.component.HandleHobs;
  20.  
  21. @ManagedBean
  22. @SessionScoped
  23. public class LoginBean implements Serializable {
  24. /**
  25. *
  26. */
  27. private static final long serialVersionUID = -8650636789236091591L;
  28. private static Logger LOGGER = LoggerFactory.getLogger(LoginBean.class);
  29.  
  30. private String username;
  31.  
  32. private String password;
  33.  
  34. private String error;
  35.  
  36. private boolean visible = false;
  37.  
  38. private HandleHobs handleHobs;
  39.  
  40. public String getUsername() {
  41. return username;
  42. }
  43.  
  44. public void setUsername(String username) {
  45. this.username = username;
  46. }
  47.  
  48. public String getPassword() {
  49. return password;
  50. }
  51.  
  52. public void setPassword(String password) {
  53. this.password = password;
  54. }
  55.  
  56. public String getError() {
  57. return error;
  58. }
  59.  
  60. public void setError(String error) {
  61. this.error = error;
  62. }
  63.  
  64. public boolean isVisible() {
  65. return visible;
  66. }
  67.  
  68. public void setVisible(boolean visible) {
  69. this.visible = visible;
  70. }
  71.  
  72. /*
  73. * public LoginBean() { try { if (handleHobs != null &&
  74. * !handleHobs.isJobStoredScreenShotIsStarted()) { handleHobs = new
  75. * HandleHobs(); } } catch (Exception e) { LOGGER.error("error init job", e); }
  76. *
  77. * }
  78. */
  79.  
  80. @PostConstruct
  81. public void init() {
  82. try {
  83. if (handleHobs == null || !handleHobs.isJobStoredScreenShotIsStarted()) {
  84. handleHobs = new HandleHobs();
  85. }
  86. } catch (Exception e) {
  87. LOGGER.error("error init job", e);
  88. }
  89.  
  90. }
  91.  
  92. public void login() throws ClassNotFoundException, SQLException, IOException, AWTException {
  93. // String un = "a";
  94. // String pw = "b";
  95. FacesContext context = FacesContext.getCurrentInstance();
  96. ExternalContext externalContext = context.getExternalContext();
  97. HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
  98. // Login login = new Login();
  99. // boolean isLoggedIn = login.LoginUser(username, password);
  100. try {
  101. request.login(username, password);
  102.  
  103. handleHobs.startJobStoredScreenShot(username);
  104. externalContext
  105. .redirect(externalContext.getRequestContextPath() + "/faces/Success.xhtml?faces-redirect=true");
  106. } catch (Exception e) {
  107. FacesContext fc = FacesContext.getCurrentInstance();
  108. this.error = getErrorParam(fc);
  109.  
  110. setVisible(true);
  111. System.out.println("not equal.. " + error);
  112. e.printStackTrace();
  113. }
  114.  
  115. /*
  116. *
  117. * if (isLoggedIn) { System.out.println("equal"); externalContext
  118. * .redirect(externalContext.getRequestContextPath() +
  119. * "/faces/Success.xhtml?faces-redirect=true"); } else {
  120. *
  121. * FacesContext fc = FacesContext.getCurrentInstance(); this.error =
  122. * getErrorParam(fc);
  123. *
  124. * setVisible(true); System.out.println("not equal.. " + error);
  125. *
  126. * }
  127. */
  128. }
  129.  
  130. public String getErrorParam(FacesContext fc) {
  131.  
  132. Map<String, String> params = fc.getExternalContext().getRequestParameterMap();
  133. return params.get("error1");
  134.  
  135. }
  136. public logout(){
  137. handleHobs.shutdownJobStoredScreenShot();
  138. ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
  139. externalContext.invalidateSession();
  140. externalContext.redirect(externalContext.getRequestContextPath() + "/faces/login.xhtml?faces-redirect=true");
  141. }
  142.  
  143. package com.viremp.component;
  144.  
  145. import static org.quartz.JobBuilder.newJob;
  146. import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
  147. import static org.quartz.TriggerBuilder.newTrigger;
  148.  
  149. import org.quartz.JobDetail;
  150. import org.quartz.Scheduler;
  151. import org.quartz.Trigger;
  152. import org.quartz.impl.StdSchedulerFactory;
  153. import org.slf4j.Logger;
  154. import org.slf4j.LoggerFactory;
  155.  
  156. public class HandleHobs {
  157.  
  158. private static Logger LOGGER = LoggerFactory.getLogger(HandleHobs.class);
  159.  
  160. private static JobDetail job;
  161.  
  162. private static Scheduler scheduler;
  163. String email;
  164.  
  165. public HandleHobs(String email) {
  166. this.email = email;
  167. }
  168.  
  169. private static Trigger trigger;
  170.  
  171. {
  172. try {
  173.  
  174. if (job == null && scheduler == null && trigger == null) {
  175. LOGGER.info("initializing job");
  176.  
  177. job = (JobDetail) newJob(JobStoredScreenShot.class).withIdentity("job1", "group1").build();
  178.  
  179. trigger = newTrigger().withIdentity("trigger1", "group1").startNow()
  180. .withSchedule(simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();
  181.  
  182. scheduler = StdSchedulerFactory.getDefaultScheduler();
  183. scheduler.scheduleJob(job, trigger);
  184. LOGGER.info("init successsful");
  185. }
  186. } catch (Exception e) {
  187. LOGGER.error("fail to init variables for job", e);
  188. }
  189. }
  190.  
  191. public HandleHobs() {
  192.  
  193. }
  194.  
  195. public void startJobStoredScreenShot(String email) {
  196. try {
  197. this.email = email;
  198. JobStoredScreenShot jss = new JobStoredScreenShot();
  199. jss.setEmail(email);
  200. if (scheduler != null && !scheduler.isStarted()) {
  201.  
  202. Scheduler scheduler1 = new StdSchedulerFactory().getScheduler();
  203. System.out.println("here..... " + email);
  204. scheduler1.getContext().put("email", email);
  205. System.out.println("and here..... " + email);
  206.  
  207. scheduler.start();
  208. }
  209. LOGGER.info("init successsful");
  210. } catch (Exception e) {
  211. LOGGER.error("fail to init job JobStoredScreenShot", e);
  212. }
  213. }
  214.  
  215. public void shutdownJobStoredScreenShot() {
  216. try {
  217. if (scheduler.isStarted()) {
  218. scheduler.shutdown();
  219. }
  220. LOGGER.info("shutdown successsful");
  221. } catch (Exception e) {
  222. LOGGER.error("fail to init job JobStoredScreenShot", e);
  223. }
  224. }
  225.  
  226. public boolean isJobStoredScreenShotIsStarted() {
  227. boolean isStarted = false;
  228. try {
  229.  
  230. if (scheduler != null) {
  231. isStarted = true;
  232. }
  233. } catch (Exception e) {
  234. LOGGER.error("fail get isTarted", e);
  235. }
  236. return isStarted;
  237. }
  238.  
  239. }
  240.  
  241. package com.viremp.component;
  242.  
  243. import java.awt.Rectangle;
  244. import java.awt.Robot;
  245. import java.awt.Toolkit;
  246. import java.awt.image.BufferedImage;
  247. import java.io.ByteArrayInputStream;
  248. import java.io.ByteArrayOutputStream;
  249. import java.io.File;
  250. import java.io.InputStream;
  251. import java.time.LocalDate;
  252.  
  253. import javax.imageio.ImageIO;
  254.  
  255. import org.quartz.Job;
  256. import org.quartz.JobExecutionContext;
  257. import org.quartz.JobExecutionException;
  258. import org.quartz.SchedulerContext;
  259.  
  260. import com.viremp.core.domain.Screenshot;
  261. import com.viremp.core.domain.User;
  262. import com.viremp.core.repository.ScreenshotRepository;
  263. import com.viremp.core.repository.UserRepository;
  264. import com.viremp.core.repository.impl.ScreenshotRepositoryImpl;
  265. import com.viremp.core.repository.impl.UserRepositoryImpl;
  266.  
  267. public class JobStoredScreenShot implements Job {
  268.  
  269. String email;
  270. User user = new User();
  271.  
  272. public void setEmail(String Email) {
  273.  
  274. this.email = Email;
  275. System.out.println("in job stored class email is: " + email);
  276.  
  277. user.setEmail(email);
  278. }
  279.  
  280. @Override
  281. public void execute(JobExecutionContext arg0) throws JobExecutionException {
  282.  
  283. try {
  284.  
  285. SchedulerContext schedulerContext = arg0.getScheduler().getContext();
  286. // Below line gets the value from context.
  287. // Just get it and cast it in to correct type
  288. String email = (String) schedulerContext.get("email");
  289. System.out.println(email);
  290. BufferedImage image = new Robot()
  291. .createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
  292. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  293. ImageIO.write(image, "png", baos);
  294. baos.flush();
  295. byte[] imageInByte = baos.toByteArray();
  296. baos.close();
  297.  
  298. System.out.println("in execute " + user.getEmail() + ".................: " + email);
  299. UserRepository userRepository = new UserRepositoryImpl();
  300. user = userRepository.getUserByEmail(email);
  301. System.out.println("USER IS: " + user.getUsername() + " id is : " + user.getId());
  302. // byte[] buffer = (((DataBufferByte)
  303. // (image).getRaster().getDataBuffer()).getData());
  304. InputStream inputStream = new ByteArrayInputStream(imageInByte);
  305. LocalDate localDate = LocalDate.now();
  306. Screenshot screenshot = new Screenshot();
  307. screenshot.setInput(inputStream);
  308. screenshot.setScreenshotName(user.getUsername());
  309. screenshot.setUser(new User());
  310. screenshot.getUser().setId(user.getId());
  311. screenshot.setScreenShotTime(java.sql.Date.valueOf(localDate));
  312. System.out.println("id is " + 1l);
  313. ScreenshotRepository screenshotRepository = new ScreenshotRepositoryImpl();
  314. screenshotRepository.create(screenshot);
  315. ImageIO.write(image, "png", new File("d:\screenshot.png"));
  316.  
  317. System.out.println("screenshot taken");
  318. } catch (Exception e) {
  319. e.printStackTrace();
  320. }
  321. }
  322.  
  323. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement