Sha256: 0493d00c4e94376a26fdd15da9bbeaeaf4ae3122dbc2751cdc6f96de7ff715e1

Contents?: true

Size: 600 Bytes

Versions: 3

Compression:

Stored size: 600 Bytes

Contents

class ProxyTicket
  class << self
    def validate!(ticket, store)
      if service_url = store[ticket]
        store.del ticket
        new(service_url)
      end
    end
    
    def expire_time
      300
    end
  end
  
  def initialize(service_url)
    @service_url = service_url
  end
  
  def valid_for_service?(url)
    @service_url == url
  end
  
  def ticket
    @ticket ||= "PT-#{rand(100000000000000000)}".to_s
  end
  
  def remaining_time(store)
    store.ttl ticket
  end
  
  def save!(store)
    store[ticket] = @service_url
    store.expire ticket, self.class.expire_time
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
classy_cas-0.9.3 lib/proxy_ticket.rb
classy_cas-0.9.2 lib/proxy_ticket.rb
classy_cas-0.9.1 lib/proxy_ticket.rb