[17] | 1 | package jregistrate; |
---|
| 2 | |
---|
| 3 | import java.lang.System; |
---|
| 4 | import java.io.*; |
---|
| 5 | import javax.servlet.ServletException; |
---|
| 6 | import javax.servlet.http.*; |
---|
| 7 | import java.sql.*; |
---|
| 8 | import org.sqlite.JDBC; |
---|
| 9 | |
---|
| 10 | |
---|
| 11 | /* Copyright (C) 2015 Blindspot Security LLC. All rights reserved. |
---|
| 12 | * Author: Timothy D. Morgan |
---|
| 13 | */ |
---|
| 14 | public final class register extends BaseServlet |
---|
| 15 | { |
---|
| 16 | public void doGet(HttpServletRequest request, |
---|
| 17 | HttpServletResponse response) |
---|
| 18 | throws IOException, ServletException |
---|
| 19 | { |
---|
| 20 | response.setContentType("text/html"); |
---|
| 21 | |
---|
| 22 | PrintWriter writer = response.getWriter(); |
---|
| 23 | writer.println("<html>"); |
---|
| 24 | writer.println("<head>"); |
---|
| 25 | writer.println("<title>Register for an Account</title>"); |
---|
| 26 | writer.println("</head>"); |
---|
| 27 | writer.println("<body bgcolor='#EEFFEE'>"); |
---|
| 28 | String error = (String)request.getAttribute("error"); |
---|
| 29 | if (error != null) |
---|
| 30 | { |
---|
| 31 | writer.println("<span style='color: red;'>ERROR:"+error+"</span>"); |
---|
| 32 | } |
---|
| 33 | writer.println("<!-- Hint: sample valid: 0012-8846,9475 -->"); |
---|
| 34 | |
---|
| 35 | String member_id = request.getParameter("member_id"); |
---|
| 36 | member_id = (member_id == null) ? "" : member_id; |
---|
| 37 | String last_four = request.getParameter("last_four"); |
---|
| 38 | last_four = (last_four == null) ? "" : last_four; |
---|
| 39 | //String zip_code = request.getParameter("zip_code"); |
---|
| 40 | //zip_code = (zip_code == null) ? "" : zip_code; |
---|
| 41 | String username = request.getParameter("username"); |
---|
| 42 | username = (username == null) ? "" : username; |
---|
| 43 | String password = request.getParameter("password"); |
---|
| 44 | password = (password == null || !password.equals(request.getParameter("conf_pwd"))) ? "" : password; |
---|
| 45 | |
---|
| 46 | |
---|
| 47 | writer.println("<form action='register' method='POST'>"); |
---|
| 48 | writer.println("<table border=\"0\" cellpadding=\"10\">"); |
---|
| 49 | |
---|
| 50 | writer.println("<tr><td colspan='3'>"); |
---|
| 51 | writer.println("<h1>Boobie Veterinary Insurance Company, Inc, LLC</h1>"); |
---|
| 52 | writer.println("</td></tr>"); |
---|
| 53 | |
---|
| 54 | writer.println("<tr><td colspan='2'><h2>Register for Your Online Account</h2></td>"); |
---|
| 55 | writer.println("<td rowspan='10'><img src='images/blue-footed-boobie.jpg' height='300' border='1' /></td>"); |
---|
| 56 | writer.println("</tr>"); |
---|
| 57 | |
---|
| 58 | writer.println("<tr><td>Membership ID<br/>(Format: ####-####):</td><td><input type='text' name='member_id' value='"+htmlEncode(member_id)+"' /></td></tr>"); |
---|
| 59 | writer.println("<tr><td>Last 4 of SSN:</td><td><input type='text' name='last_four' value='"+htmlEncode(last_four)+"' /></td></tr>"); |
---|
| 60 | //writer.println("<tr><td>Zip Code: </td><td><input type='text' name='zip_code' value='"+htmlEncode(zip_code)+"' /></td></tr>"); |
---|
| 61 | writer.println("<tr></tr>"); |
---|
| 62 | writer.println("<tr><td>Username:</td><td><input type='text' name='username' value='"+htmlEncode(username)+"' /></td></tr>"); |
---|
| 63 | writer.println("<tr><td>Password:</td><td><input type='text' name='password' value='' /></td></tr>"); |
---|
| 64 | writer.println("<tr><td>Confirm Password:</td><td><input type='text' name='conf_pwd' value='' /></td></tr>"); |
---|
| 65 | writer.println("<tr><td><input type='submit' value='submit'></td></tr>"); |
---|
| 66 | writer.println("</table>"); |
---|
| 67 | writer.println("</form>"); |
---|
| 68 | writer.println("</body>"); |
---|
| 69 | writer.println("</html>"); |
---|
| 70 | } |
---|
| 71 | |
---|
| 72 | |
---|
| 73 | public void doPost(HttpServletRequest request, |
---|
| 74 | HttpServletResponse response) |
---|
| 75 | throws IOException, ServletException |
---|
| 76 | { |
---|
| 77 | request.setAttribute("error", null); |
---|
| 78 | try |
---|
| 79 | { |
---|
| 80 | String member_id = request.getParameter("member_id"); |
---|
| 81 | member_id = (member_id == null) ? "" : member_id; |
---|
| 82 | String last_four = request.getParameter("last_four"); |
---|
| 83 | last_four = (last_four == null) ? "" : last_four; |
---|
| 84 | //String zip_code = request.getParameter("zip_code"); |
---|
| 85 | //zip_code = (zip_code == null) ? "" : zip_code; |
---|
| 86 | String username = request.getParameter("username"); |
---|
| 87 | username = (username == null) ? "" : username; |
---|
| 88 | String password = request.getParameter("password"); |
---|
| 89 | password = (password == null || !password.equals(request.getParameter("conf_pwd"))) ? "" : password; |
---|
| 90 | |
---|
| 91 | |
---|
| 92 | Connection db = openDB(); |
---|
| 93 | PreparedStatement ps = db.prepareStatement("SELECT * FROM members WHERE member_id=?"); |
---|
| 94 | ps.setString(1, member_id); |
---|
| 95 | ResultSet rs = ps.executeQuery(); |
---|
| 96 | long start = System.nanoTime(); |
---|
| 97 | PrintWriter writer = response.getWriter(); |
---|
| 98 | if (rs.next()) |
---|
| 99 | { |
---|
| 100 | if (last_four.equals(decryptLastFour(rs.getString("enc_last_four")))) |
---|
| 101 | { |
---|
| 102 | if (!"".equals(password)) |
---|
| 103 | { |
---|
| 104 | // member_id already registered? |
---|
| 105 | // username already registered? |
---|
| 106 | response.setContentType("text/html"); |
---|
| 107 | writer.println("<html><body>Registration Successful!</body></html>"); |
---|
| 108 | return; |
---|
| 109 | } |
---|
| 110 | else |
---|
| 111 | request.setAttribute("error", "Bad password or passwords don't match"); |
---|
| 112 | } |
---|
| 113 | } |
---|
| 114 | response.addHeader("X-Response-Time", String.format("%fms", (System.nanoTime()-start)/1000000.0)); |
---|
| 115 | if (request.getAttribute("error") == null) |
---|
| 116 | request.setAttribute("error", "Invalid personal information specified. Try again."); |
---|
| 117 | } |
---|
| 118 | catch (Exception e) |
---|
| 119 | { |
---|
| 120 | request.setAttribute("error", "Unknown error occurred. See logs."); |
---|
| 121 | e.printStackTrace(); |
---|
| 122 | } |
---|
| 123 | |
---|
| 124 | doGet(request, response); |
---|
| 125 | } |
---|
| 126 | |
---|
| 127 | } |
---|