class Sabisu::Server

server class

server class

server class

server class

server class

run sabisu as a server

Constants

API_PASSWORD
API_PORT
API_SSL
API_URL
API_USER
CONFIG_FILE
CURRENT_DB
FIELDS
HISTORY_DB
NOAUTH
PORT
SSL_ONLY
UI_PASSWORD
UI_USERNAME

Public Instance Methods

authorized?() click to toggle source
# File lib/sabisu/server.rb, line 99
def authorized?
  @auth ||=  Rack::Auth::Basic::Request.new(request.env)
  @auth.provided? &&
    @auth.basic? &&
    @auth.credentials &&
    @auth.credentials == [UI_USERNAME, UI_PASSWORD]
end
clear_session() click to toggle source
# File lib/sabisu/server.rb, line 95
def clear_session
  session.clear
end
force_session_auth() click to toggle source
# File lib/sabisu/server.rb, line 86
def force_session_auth
  if logged_in?
    return true
  else
    redirect '/login'
    return false
  end
end
logged_in?() click to toggle source
# File lib/sabisu/server.rb, line 82
def logged_in?
  NOAUTH == true || (session[:logged_in] == true && session[:username])
end
protected!() click to toggle source
# File lib/sabisu/server.rb, line 107
def protected!
  unless authorized? || logged_in?
    response['WWW-Authenticate'] = "Basic realm='Sabisu requires authentication'"
    throw(:halt, [401, "Not authorized\n"])
  end
end
sensu(request) click to toggle source
# File lib/sabisu/routes/sensu.rb, line 5
def sensu(request)
  sensu = Sensu.new
  tmp_path = request.path_info.split('/')
  tmp_path.delete_at(1)
  path = tmp_path.join('/')
  opts = {
    path: path,
    method: request.request_method,
    ssl: API_SSL
  }
  begin
    opts[:payload] = JSON.parse(request.body.read) if request.post?
  rescue StandardError
    puts "unable to parse: #{request.body.read}"
  end
  sensu.request(opts)
end
validate(username, password) click to toggle source
# File lib/sabisu/server.rb, line 78
def validate(username, password)
  username == UI_USERNAME && password == UI_PASSWORD
end