class CF::UAA::TokenCatcher

Public Instance Methods

process_grant(data) click to toggle source
# File lib/uaa/cli/token.rb, line 23
def process_grant(data)
  server.logger.debug "processing grant for path #{request.path}"
  secret = server.info.delete(:client_secret)
  do_authcode = server.info.delete(:do_authcode)
  ti = TokenIssuer.new(Config.target, server.info.delete(:client_id), secret,
      { token_target: Config.target_value(:token_target),
        basic_auth: Config.target_value(:basic_auth),
        use_pkce: true,
        code_verifier: server.info.delete(:code_verifier),
        skip_ssl_validation: Config.target_value(:skip_ssl_validation)})
  tkn = do_authcode ? ti.authcode_grant(server.info.delete(:uri), data) :
      ti.implicit_grant(server.info.delete(:uri), data)
  server.info.update(token_info: tkn.info)
  reply.text "you are now logged in and can close this window"
rescue TargetError => e
  reply.text "#{e.message}:\r\n#{Util.json_pretty(e.info)}\r\n#{e.backtrace}"
rescue Exception => e
  reply.text "#{e.message}\r\n#{e.backtrace}"
ensure
  server.logger.debug "reply: #{reply.body}"
end