My agentic slop goes here. Not intended for anyone else!
at main 1.2 kB view raw
1let src = Logs.Src.create "requests.auth" ~doc:"HTTP Authentication" 2module Log = (val Logs.src_log src : Logs.LOG) 3 4type t = 5 | None 6 | Basic of { username : string; password : string } 7 | Bearer of { token : string } 8 | Digest of { username : string; password : string } 9 | Custom of (Headers.t -> Headers.t) 10 11let none = None 12 13let basic ~username ~password = Basic { username; password } 14 15let bearer ~token = Bearer { token } 16 17let digest ~username ~password = Digest { username; password } 18 19let custom f = Custom f 20 21let apply auth headers = 22 match auth with 23 | None -> headers 24 | Basic { username; password } -> 25 Log.debug (fun m -> m "Applying basic authentication for user: %s" username); 26 Headers.basic ~username ~password headers 27 | Bearer { token } -> 28 Log.debug (fun m -> m "Applying bearer token authentication"); 29 Headers.bearer token headers 30 | Digest { username; password = _ } -> 31 Log.debug (fun m -> m "Digest auth configured for user: %s (requires server challenge)" username); 32 (* Digest auth requires server challenge first, handled elsewhere *) 33 headers 34 | Custom f -> 35 Log.debug (fun m -> m "Applying custom authentication handler"); 36 f headers