Pulled the "expired or missing" method out.  Also since getSessionExpiration() can never return a zero time, simplified logic around this.