33 lines
542 B
Ruby
33 lines
542 B
Ruby
module Msf
|
|
module RPC
|
|
class Auth < Base
|
|
|
|
def login(user,pass)
|
|
|
|
# handle authentication here
|
|
fail = true
|
|
@users.each do |u|
|
|
if(u[0] == user and u[1] == pass)
|
|
fail = false
|
|
break
|
|
end
|
|
end
|
|
|
|
if(fail)
|
|
raise ::XMLRPC::FaultException.new(401, "authentication error")
|
|
end
|
|
|
|
token = Rex::Text.rand_text_alphanumeric(32)
|
|
@tokens[token] = [user, Time.now.to_i, Time.now.to_i]
|
|
{ "result" => "success", "token" => token }
|
|
end
|
|
|
|
def logout(token)
|
|
@tokens.delete(token)
|
|
{ "result" => "success" }
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|