class Da99_Rack_Protect::Ensure_Host
Constants
- HTT_HOST
- LOCALHOST
- SERVER_NAME
Public Class Methods
new(new_app, *hosts)
click to toggle source
# File lib/da99_rack_protect/0050_Ensure_Host.rb, line 10 def initialize new_app, *hosts @app = new_app @hosts = hosts end
Public Instance Methods
call(e)
click to toggle source
# File lib/da99_rack_protect/0050_Ensure_Host.rb, line 15 def call e name = e[SERVER_NAME] host = e[HTT_HOST] is_valid = @hosts.include?(name) if !is_valid is_local = @hosts.include?(:localhost) && name[LOCALHOST] is_valid = is_local end is_match = host[/\A#{name}(:\d+)?\z/] return @app.call(e) if is_valid && is_match Da99_Rack_Protect.response 444, :text, 'Invalid host specified by client.' end