HTTP基本身份验证在Ruby HTTP中是默认的

时间:2015-10-18 17:25:46

标签: ruby http basic-authentication

使用Ruby 2.2.3我正在寻找一种方法来为每个请求使用HTTP基本身份验证。我知道可以为每个请求定义private final BorderPane rootPane = new BorderPane(); // Class field // in your start method final Scene scene = new Scene(rootPane); primaryStage.setScene(scene); //Change View like this: View v = new BView(); rootPane.setCenter(v.getRec()); // later you can set your color v.setColor() // Your View class: public class View{ private Rectangle rect; public View(){ rect = new Rectangle(10, 10, 100, 100); rect.setFill(Color.WHITE); rect.setStroke(Color.BLACK); } public Rectangle getRec(){ return this.rect; } }

basic_auth

我如何“全球”使用http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Get.new(uri.request_uri) request.basic_auth("username", "password") response = http.request(request)

1 个答案:

答案 0 :(得分:2)

basic_authNet::HTTP对象的实例方法。为方便起见,您可以定义一个具有所需basic_auth设置的类,或者作为参数给出。

简单示例:

require 'uri'
require 'net/http'

class SimpleHTTP

  def initialize uri, user = "default_user", pass = "default_pass"
    @uri = URI.parse(uri)
    @username = user
    @password = pass
  end

  def request path=nil
    @uri.path = path if path # use path if provided
    http = Net::HTTP.new(@uri.host, @uri.port)
    req = Net::HTTP::Get.new(@uri.request_uri)
    req.basic_auth(@username, @password)
    http.request(req)
  end


end

# Simple Example
http = SimpleHTTP.new('http://www.yoursite.com/defaultpath')
http.request

# Override default user/pass
http2 = SimpleHTTP.new('http://www.yoursite.com/defaultpath', "myusername", "mypass")
http2.request

# Provide path in request method
http = SimpleHTTP.new('http://www.yoursite.com/')
http.request('/some_path')