Sha256: 905cd4d8dcc0254133055c2d45b4291ea308c951ae0bac2d74c6c1ecab2f1b96
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
require "cgi" require "uri" require_relative "../client" module VagrantPlugins module LoginCommand class AddAuthentication ALLOWED_AUTHENTICATION_HOSTS = %w[ app.vagrantup.com atlas.hashicorp.com vagrantcloud.com ].freeze def initialize(app, env) @app = app end def call(env) client = Client.new(env[:env]) token = client.token if token && Vagrant.server_url server_uri = URI.parse(Vagrant.server_url) env[:box_urls].map! do |url| u = URI.parse(url) replace = u.host == server_uri.host if !replace if ALLOWED_AUTHENTICATION_HOSTS.include?(u.host) && ALLOWED_AUTHENTICATION_HOSTS.include?(server_uri.host) replace = true end end if replace q = CGI.parse(u.query || "") current = q["access_token"] if current && current.empty? q["access_token"] = token end u.query = URI.encode_www_form(q) end u.to_s end end @app.call(env) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vagrant-unbundled-2.0.2.0 | plugins/commands/login/middleware/add_authentication.rb |