This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
module WEBrick
|
||||
module HTTPAuth
|
||||
module Authenticator
|
||||
@reload_db: bool?
|
||||
|
||||
@request_field: String
|
||||
|
||||
@response_field: String
|
||||
|
||||
@resp_info_field: String
|
||||
|
||||
@auth_exception: singleton(HTTPStatus::ClientError)
|
||||
|
||||
@auth_scheme: String
|
||||
|
||||
RequestField: String
|
||||
|
||||
ResponseField: String
|
||||
|
||||
ResponseInfoField: String
|
||||
|
||||
AuthException: singleton(HTTPStatus::ClientError)
|
||||
|
||||
AuthScheme: String?
|
||||
|
||||
attr_reader realm: String?
|
||||
|
||||
attr_reader userdb: UserDB
|
||||
|
||||
attr_reader logger: Log
|
||||
|
||||
private
|
||||
|
||||
def check_init: (Hash[Symbol, untyped] config) -> void
|
||||
|
||||
def check_scheme: (HTTPRequest req) -> String?
|
||||
|
||||
def log: (interned meth, String fmt, *untyped args) -> void
|
||||
|
||||
def error: (String fmt, *untyped args) -> void
|
||||
|
||||
def info: (String fmt, *untyped args) -> void
|
||||
end
|
||||
|
||||
module ProxyAuthenticator
|
||||
RequestField: String
|
||||
|
||||
ResponseField: String
|
||||
|
||||
ResponseInfoField: String
|
||||
|
||||
AuthException: singleton(HTTPStatus::ClientError)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,29 @@
|
||||
module WEBrick
|
||||
module HTTPAuth
|
||||
class BasicAuth
|
||||
@config: Hash[Symbol, untyped]
|
||||
|
||||
include Authenticator
|
||||
|
||||
AuthScheme: String
|
||||
|
||||
def self.make_passwd: (String? realm, String? user, String? pass) -> String
|
||||
|
||||
attr_reader realm: String?
|
||||
|
||||
attr_reader userdb: UserDB
|
||||
|
||||
attr_reader logger: Log
|
||||
|
||||
def initialize: (Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void
|
||||
|
||||
def authenticate: (HTTPRequest req, HTTPResponse res) -> void
|
||||
|
||||
def challenge: (HTTPRequest req, HTTPResponse res) -> bot
|
||||
end
|
||||
|
||||
class ProxyBasicAuth < BasicAuth
|
||||
include ProxyAuthenticator
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,85 @@
|
||||
module WEBrick
|
||||
module HTTPAuth
|
||||
class DigestAuth
|
||||
@config: Hash[Symbol, untyped]
|
||||
|
||||
@domain: Array[String]?
|
||||
|
||||
@use_opaque: bool
|
||||
|
||||
@use_next_nonce: bool
|
||||
|
||||
@check_nc: bool
|
||||
|
||||
@use_auth_info_header: bool
|
||||
|
||||
@nonce_expire_period: Integer
|
||||
|
||||
@nonce_expire_delta: Integer
|
||||
|
||||
@internet_explorer_hack: bool
|
||||
|
||||
@h: singleton(Digest::Base)
|
||||
|
||||
@instance_key: String
|
||||
|
||||
@opaques: Hash[String, OpaqueInfo]
|
||||
|
||||
@last_nonce_expire: Time
|
||||
|
||||
@mutex: Thread::Mutex
|
||||
|
||||
include Authenticator
|
||||
|
||||
AuthScheme: String
|
||||
|
||||
class OpaqueInfo < Struct[untyped]
|
||||
attr_accessor time(): Time
|
||||
attr_accessor nonce(): String?
|
||||
attr_accessor nc(): String
|
||||
end
|
||||
|
||||
attr_reader algorithm: String?
|
||||
|
||||
attr_reader qop: Array[String]
|
||||
|
||||
def self.make_passwd: (String realm, String user, String pass) -> untyped
|
||||
|
||||
def initialize: (Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void
|
||||
|
||||
def authenticate: (HTTPRequest req, HTTPResponse res) -> void
|
||||
|
||||
def challenge: (HTTPRequest req, HTTPResponse res, ?bool stale) -> bot
|
||||
|
||||
private
|
||||
|
||||
MustParams: Array[String]
|
||||
|
||||
MustParamsAuth: Array[String]
|
||||
|
||||
def _authenticate: (HTTPRequest req, HTTPResponse res) -> (:nonce_is_stale | bool)
|
||||
|
||||
def split_param_value: (String string) -> Hash[String, String]
|
||||
|
||||
def generate_next_nonce: (HTTPRequest req) -> String
|
||||
|
||||
def check_nonce: (HTTPRequest req, Hash[String, String] auth_req) -> bool
|
||||
|
||||
def generate_opaque: (HTTPRequest req) -> String
|
||||
|
||||
def check_opaque: (OpaqueInfo opaque_struct, untyped req, Hash[String, String] auth_req) -> bool
|
||||
|
||||
def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> bool
|
||||
|
||||
def hexdigest: (*_ToS? args) -> String
|
||||
end
|
||||
|
||||
class ProxyDigestAuth < DigestAuth
|
||||
include ProxyAuthenticator
|
||||
|
||||
private
|
||||
|
||||
def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> true
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,31 @@
|
||||
module WEBrick
|
||||
module HTTPAuth
|
||||
class Htdigest
|
||||
@path: String
|
||||
|
||||
@mtime: Time
|
||||
|
||||
@digest: Hash[String, Hash[String, String]]
|
||||
|
||||
@mutex: Thread::Mutex
|
||||
|
||||
@auth_type: String
|
||||
|
||||
include UserDB
|
||||
|
||||
def initialize: (String path) -> void
|
||||
|
||||
def reload: () -> void
|
||||
|
||||
def flush: (?String? output) -> void
|
||||
|
||||
def get_passwd: (String realm, String user, bool reload_db) -> String?
|
||||
|
||||
def set_passwd: (String realm, String user, String pass) -> String
|
||||
|
||||
def delete_passwd: (String realm, String user) -> String?
|
||||
|
||||
def each: () { (String user, String realm, String password_hash) -> void } -> void
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,21 @@
|
||||
module WEBrick
|
||||
module HTTPAuth
|
||||
class Htgroup
|
||||
@path: String
|
||||
|
||||
@mtime: Time
|
||||
|
||||
@group: Hash[String, Array[String]]
|
||||
|
||||
def initialize: (String path) -> void
|
||||
|
||||
def reload: () -> void
|
||||
|
||||
def flush: (?String? output) -> void
|
||||
|
||||
def members: (String group) -> Array[String]
|
||||
|
||||
def add: (String group, Array[String] members) -> void
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,31 @@
|
||||
module WEBrick
|
||||
module HTTPAuth
|
||||
class Htpasswd
|
||||
@path: String
|
||||
|
||||
@mtime: Time
|
||||
|
||||
@passwd: Hash[String, String]
|
||||
|
||||
@auth_type: String
|
||||
|
||||
@password_hash: (:crypt | :bcrypt)
|
||||
|
||||
include UserDB
|
||||
|
||||
def initialize: (String path, ?password_hash: (:crypt | :bcrypt)?) -> void
|
||||
|
||||
def reload: () -> void
|
||||
|
||||
def flush: (?String? output) -> void
|
||||
|
||||
def get_passwd: (String realm, String user, bool reload_db) -> String?
|
||||
|
||||
def set_passwd: (String realm, String user, String pass) -> void
|
||||
|
||||
def delete_passwd: (String realm, String user) -> String
|
||||
|
||||
def each: () { ([String, String]) -> void } -> void
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,13 @@
|
||||
module WEBrick
|
||||
module HTTPAuth
|
||||
module UserDB
|
||||
attr_accessor auth_type: String
|
||||
|
||||
def make_passwd: (String realm, String user, String pass) -> String
|
||||
|
||||
def set_passwd: (String realm, String user, String pass) -> void
|
||||
|
||||
def get_passwd: (String realm, String user, ?bool reload_db) -> String
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user