/** * User existance check. */ public boolean doesExist(String name) throws FtpException { Statement stmt = null; ResultSet rs = null; try { // create the sql HashMap<String, Object> map = new HashMap<String, Object>(); map.put(ATTR_LOGIN, escapeString(name)); String sql = StringUtils.replaceString(selectUserStmt, map); LOG.info(sql); // execute query stmt = createConnection().createStatement(); rs = stmt.executeQuery(sql); return rs.next(); } catch (SQLException ex) { LOG.error("DbUserManager.doesExist()", ex); throw new FtpException("DbUserManager.doesExist()", ex); } finally { closeQuitely(rs); closeQuitely(stmt); } }
/** * Get the user object. Fetch the row from the table. */ public User getUserByName(String name) throws FtpException { Statement stmt = null; ResultSet rs = null; try { BaseUser user = selectUserByName(name); if(user != null) { // reset the password, not to be sent to API users user.setPassword(null); } return user; } catch (SQLException ex) { LOG.error("DbUserManager.getUserByName()", ex); throw new FtpException("DbUserManager.getUserByName()", ex); } finally { closeQuitely(rs); closeQuitely(stmt); } }
/** * Get all user names from the database. */ public String[] getAllUserNames() throws FtpException { Statement stmt = null; ResultSet rs = null; try { // create sql query String sql = selectAllStmt; LOG.info(sql); // execute query stmt = createConnection().createStatement(); rs = stmt.executeQuery(sql); // populate list ArrayList<String> names = new ArrayList<String>(); while (rs.next()) { names.add(rs.getString(ATTR_LOGIN)); } return names.toArray(new String[0]); } catch (SQLException ex) { LOG.error("DbUserManager.getAllUserNames()", ex); throw new FtpException("DbUserManager.getAllUserNames()", ex); } finally { closeQuitely(rs); closeQuitely(stmt); } }
map.put(ATTR_LOGIN, escapeString(user)); String sql = StringUtils.replaceString(authenticateStmt, map); LOG.info(sql); stmt = createConnection().createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { try { String storedPassword = rs.getString(ATTR_PASSWORD); if (getPasswordEncryptor().matches(password, storedPassword)) { return getUserByName(user); } else { throw new AuthenticationFailedException( "Authentication failed", ex); } finally { closeQuitely(rs); closeQuitely(stmt); if (doesExist("anonymous")) { return getUserByName("anonymous"); } else { throw new AuthenticationFailedException(
map.put(ATTR_LOGIN, escapeString(user.getName())); password= getPasswordEncryptor().encrypt(user.getPassword()); } else { User userWithPassword = selectUserByName(user.getName()); closeQuitely(rs); map.put(ATTR_PASSWORD, escapeString(password)); home = "/"; map.put(ATTR_HOME, escapeString(home)); map.put(ATTR_ENABLE, String.valueOf(user.getEnabled())); if (!doesExist(user.getName())) { sql = StringUtils.replaceString(insertUserStmt, map); } else { stmt = createConnection().createStatement(); stmt.executeUpdate(sql); } catch (SQLException ex) { throw new FtpException("DbUserManager.save()", ex); } finally { closeQuitely(stmt);
private void closeQuitely(Statement stmt) { if(stmt != null) { Connection con = null; try { con = stmt.getConnection(); } catch (Exception e) { } try { stmt.close(); } catch (SQLException e) { // ignore } closeQuitely(con); } }
return new DbUserManager(dataSource, selectAllStmt, selectUserStmt, insertUserStmt, updateUserStmt, deleteUserStmt, authenticateStmt, isAdminStmt, passwordEncryptor, adminName);
try { con = createConnection(); "Failed to open connection to user database", ex); } finally{ closeQuitely(con);
/** * Delete user. Delete the row from the table. */ public void delete(String name) throws FtpException { // create sql query HashMap<String, Object> map = new HashMap<String, Object>(); map.put(ATTR_LOGIN, escapeString(name)); String sql = StringUtils.replaceString(deleteUserStmt, map); LOG.info(sql); // execute query Statement stmt = null; try { stmt = createConnection().createStatement(); stmt.executeUpdate(sql); } catch (SQLException ex) { LOG.error("DbUserManager.delete()", ex); throw new FtpException("DbUserManager.delete()", ex); } finally { closeQuitely(stmt); } }
/** * @return true if user with this login is administrator */ @Override public boolean isAdmin(String login) throws FtpException { // check input if (login == null) { return false; } Statement stmt = null; ResultSet rs = null; try { // create the sql query HashMap<String, Object> map = new HashMap<String, Object>(); map.put(ATTR_LOGIN, escapeString(login)); String sql = StringUtils.replaceString(isAdminStmt, map); LOG.info(sql); // execute query stmt = createConnection().createStatement(); rs = stmt.executeQuery(sql); return rs.next(); } catch (SQLException ex) { LOG.error("DbUserManager.isAdmin()", ex); throw new FtpException("DbUserManager.isAdmin()", ex); } finally { closeQuitely(rs); closeQuitely(stmt); } }
private BaseUser selectUserByName(String name) throws SQLException { map.put(ATTR_LOGIN, escapeString(name)); String sql = StringUtils.replaceString(selectUserStmt, map); LOG.info(sql); try { stmt = createConnection().createStatement(); rs = stmt.executeQuery(sql); closeQuitely(rs); closeQuitely(stmt);