Module: CASinoCore::Helper::ProxyTickets

Includes:
Logger, Tickets
Included in:
ServiceTickets, Processor::ProxyTicketProvider
Defined in:
lib/casino_core/helper/proxy_tickets.rb

Defined Under Namespace

Classes: ValidationResult

Constant Summary

Constants included from Tickets

Tickets::ALLOWED_TICKET_STRING_CHARACTERS

Instance Method Summary collapse

Methods included from Tickets

#random_ticket_string

Methods included from Logger

#logger

Instance Method Details

#acquire_proxy_ticket(proxy_granting_ticket, service) ⇒ Object



10
11
12
13
14
15
# File 'lib/casino_core/helper/proxy_tickets.rb', line 10

def acquire_proxy_ticket(proxy_granting_ticket, service)
  proxy_granting_ticket.proxy_tickets.create!({
    ticket: random_ticket_string('PT'),
    service: service,
  })
end

#ticket_valid_for_service?(ticket, service, renew = false) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/casino_core/helper/proxy_tickets.rb', line 34

def ticket_valid_for_service?(ticket, service, renew = false)
  validate_ticket_for_service(ticket, service, renew).success?
end

#validate_ticket_for_service(ticket, service, renew = false) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/casino_core/helper/proxy_tickets.rb', line 17

def validate_ticket_for_service(ticket, service, renew = false)
  if ticket.nil?
    result = ValidationResult.new 'INVALID_TICKET', 'Invalid validate request: Ticket does not exist', :warn
  else
    result = validate_existing_ticket_for_service(ticket, service, renew)
    ticket.consumed = true
    ticket.save!
    logger.debug "Consumed ticket '#{ticket.ticket}'"
  end
  if result.success?
    logger.info "Ticket '#{ticket.ticket}' for service '#{service}' successfully validated"
  else
    logger.send(result.error_severity, result.error_message)
  end
  result
end