Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
  
  package base.jee.api.sql;
  
 
 
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
 
 import base.KeyValue;
 import base.Query;
 import base.json.Json;
 
 import static base.jee.api.sql.util.Log.log;
 import static base.jee.api.sql.util.PersonUuidForToken.personUuidForToken;

 
 public class InvalidateToken extends Query<KeyValue> {
 
 	private DataSource ds;
 	private String token;
 	private String ip;
 
 	public InvalidateToken() {
 	}
 
 	public InvalidateToken(DataSource dsString tokenString ip) {
 		this. = ds;
 		this. = token;
 		this. = ip;
 
 		if(ds == null) {
 			throw new IllegalArgumentException("Invalid parameter: ds");
 		}
 		if(token == null) {
 			throw new IllegalArgumentException("Invalid parameter: token");
 		}
 	}
 
 	public Query<KeyValuenewWithParameters(Map<StringObjectparameters) {
 		return new InvalidateToken(
 				((SqlAPI)parameters.get("api")).getDataSource(),
 				(String)parameters.get("token"),
 				((User)parameters.get("user")).getIp());
 	}
 
 	public List<KeyValueexecute() throws IOException {
 		List<KeyValueresults = new LinkedList<>();
 		Connection c = null;
 		PreparedStatement q = null;
 		int count = 0;
 
 		try {
 			c = .getConnection();
 			c.setAutoCommit(false);
 
 			UUID personUuid = personUuidForToken(c);
 			if(personUuid != null) {
 				log(c"INFO", User.userWithUuidAndIp(personUuid), "Signout.");
 			}
 
 			q = c.prepareStatement("delete from token where token=?");
 			q.setString(1, );
 			count = q.executeUpdate();
 			q.close();
 			q = null;
 
 			if(count > 0) {
 				// Only output half of the token, to prevent extraction of token in string templates
 				String tkn = .substring(0, .length()/2) + "...";
 
 				log(c"FINER", User.userWithUuidAndIp(personUuid), "Invalidated session \"" + tkn + "\".");
 			} else {
 				log(c"FINER", User.userWithUuidAndIp(personUuid), "Request to invalidate " +  + " did not correspond to an active session.");
 			}
 
 			c.commit();
 			c.close();
 			c = null;
 		} catch(SQLException e) {
 			throw new IOException(e);
 		} finally {
 			if(q != null) { try { q.close(); } catch(SQLException e) {} }
			if(c != null) {
				try { c.rollback(); } catch (SQLException e) { }
				try { c.close(); } catch (SQLException e) { }
			}
		}
		results.add(new KeyValue("success""ok"));
		return results;
	}
		return "{" +
				"\"token\":\"" +  + "\"," +
				"\"ip\":\"" + Json.escape() + "\"" +
				"}";
	}
New to GrepCode? Check out our FAQ X