package com.rau.evoting.beans; import java.io.File; import java.io.FileWriter; import javax.annotation.PostConstruct; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import com.rau.evoting.ElGamal.ElGamalHelper; import com.rau.evoting.data.ElectionDP; import com.rau.evoting.data.ElectionTrusteeDP; import com.rau.evoting.data.UserDP; import com.rau.evoting.models.Election; import com.rau.evoting.models.Trustee; import com.rau.evoting.utils.FacebookService; import com.rau.evoting.utils.MailService; import com.restfb.DefaultFacebookClient; import com.restfb.FacebookClient; import com.restfb.types.User; public class TrusteeElectionBean { private String accessToken; private int trusteeId; private Election election; private Trustee trustee; public TrusteeElectionBean() { trusteeId = Integer.valueOf(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("trId").toString()); System.out.println(trusteeId); } @PostConstruct public void init() { HttpServletRequest req = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); String code = req.getParameter("code"); accessToken = FacebookService.getInstance().getAccessToken(code, "TrusteeElection.xhtml"); trustee = ElectionTrusteeDP.getElectionTrustee(trusteeId); election = ElectionDP.getElection(trustee.getElectId()); FacebookClient fbClient = new DefaultFacebookClient(accessToken); User user = fbClient.fetchObject("me", User.class); int userId = UserDP.insert(user.getId(), user.getEmail()); trustee.setEmail(user.getEmail()); trustee.setUserId(userId); ElectionTrusteeDP.updateTrustee(trusteeId, trustee); } public int getTrusteeId() { return trusteeId; } public void setTrusteeId(int trusteeId) { this.trusteeId = trusteeId; } public Election getElection() { return election; } public void setElection(Election election) { this.election = election; } public Trustee getTrustee() { return trustee; } public void setTrustee(Trustee trustee) { this.trustee = trustee; } public String generateKey() { String filename = "D:\\PrivateKey.txt"; File file = new File(filename); ElGamalHelper elHelper = new ElGamalHelper(); trustee.setPublicKey(elHelper.getPublicKey()); trustee.setGenerated(true); ElectionTrusteeDP.setTrusteePublicKey(trustee.getPublicKey(), trusteeId); try { FileWriter fw = new FileWriter(file); fw.write(elHelper.getPrivateKey()); fw.close(); MailService.sendMessageWithFile(trustee.getEmail(), "Private Key", "This is your private key for " + election.getName() + " election", filename); } catch (Exception e) { e.printStackTrace(); } finally { if(!file.delete()){ System.out.println("Error when deleting file"); } } return ""; } }