- // TODO ckeck if certificate is valid
- HttpSession hs = req.getSession();
- hs.setAttribute("loggedin", true);
+ String serial = x509Certificate.getSerialNumber().toString(16)
+ .toUpperCase();
+ try {
+ PreparedStatement ps = DatabaseConnection
+ .getInstance()
+ .prepare(
+ "SELECT `memid` FROM `emailcerts` WHERE `serial`=? AND `disablelogin`='0' AND `revoked` = "
+ + "'0000-00-00 00:00:00'");
+ ps.setString(1, serial);
+ ResultSet rs = ps.executeQuery();
+ if (rs.next()) {
+ HttpSession hs = req.getSession();
+ hs.setAttribute(LOGGEDIN, true);
+ hs.setAttribute(USER, new User(rs.getInt(1)));
+ }
+ rs.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }