Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
 package base.jee.api.cassandra.util;
import static base.jee.api.cassandra.util.Log.log;
import static base.jee.api.cassandra.util.UpdatePersonTokenRoleString.personTokenRoleString;
public class CreateSession {
	public static String createSession(Session sUUID personUuidString firstNameString lastNameString currentTokenString iplong sessionExpiry) {
		String token = null;
		PreparedStatement p = null;
		// If the user/password details match the existing cookie (ie already signed in), we
		// don't need to generate and store a new cookie.
		if(currentToken != null && currentToken.length() > 0) {
			p = s.prepare("select person_uuid from session_token where uid=?");
			ResultSet r = s.execute(p.bind(currentToken));
			if(r.iterator().hasNext()) {
				if(personUuid.equals(r.iterator().next().getUUID(0))) {
					log(s"FINER", User.userWithUuidAndIp(personUuidip), "Creating a session for a person who already has a session.");
					return currentToken// Re-use the existing session cookie and data record
else {
					log(s"FINER", User.userWithUuidAndIp(personUuidip), "Creating session for a person who already has a session authenticated against a different person.");
		p = s.prepare("insert into session_token (person_uuid, uid, roles, expiry, created, first_name, last_name) values(?,?,?,?,?,?,?)");
		s.execute(p.bind(personUuidtokenpersonTokenRoleString(spersonUuid), sessionExpiry + (new Date()).getTime() / 1000, (new Date()).getTime() / 1000, firstNamelastName));
		// Only output half of the token, to prevent extraction of token in string templates
		String tkn = token.substring(0, token.length()/2) + "...";
		log(s"DEBUG", User.userWithUuidAndIp(personUuidip), "Created session with token \"" + tkn + "\".");
		return token;
New to GrepCode? Check out our FAQ X