ntlm
Version, currently 1.0.12 versions
- 1.0.1latestMar 22, 2021
- 1.0.0not indexedMay 25, 2021
github.com/spider-gazelle/ntlm
NTLM authentication for crystal lang
4 stars
1 dependent
License: MIT
Installation
# Add this to your shard.yml
dependencies:
ntlm:
github: spider-gazelle/ntlm
version: ~> 1.0.1Then run:
shards installshard.yml
- Crystal
>= 0.36.1
Dependencies
Runtime Dependencies
- bindata*github: spider-gazelle/bindata
Development Dependencies
- ameba*github: veelenga/amebadev
README
Crystal Lang NTLM Auth
Communicate with servers that implement NTLM auth.
Installation
-
Add the dependency to your
shard.yml:dependencies: ntlm: github: spider-gazelle/ntlm -
Run
shards install
Usage
Authenticate a HTTP request
require "http/client"
require "ntlm"
route = "/terrible/soap/api"
username = "username"
password = "password"
# NOTE:: domain is not always required, this can sometimes be left `nil`
domain = "DOMAIN"
client = HTTP::Client.new "corporate.service"
response = client.get route
if response.status_code == 401 && response.headers["WWW-Authenticate"]?
supported = response.headers.get("WWW-Authenticate")
raise "doesn't support NTLM auth: #{supported}" unless supported.includes?("NTLM")
# Negotiate NTLM
response = client.get route, HTTP::Headers{"Authorization" => NTLM.negotiate_http(domain)}
# Extract the challenge
raise "unexpected response #{response.status_code}" unless response.status_code == 401 && response.headers["WWW-Authenticate"]?
challenge = response.headers["WWW-Authenticate"]
# Authenticate the client
response = client.get route, HTTP::Headers{"Authorization" => NTLM.authenticate_http(challenge, username, password)}
end
response
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.0.1- Tagged
- Mar 22, 2021
- Commit
55edaeedb26d- Crystal
>= 0.36.1- Indexed
- yes
Dependents
Repository
github.com/spider-gazelle/ntlm
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 30, 2026
- Synced
- Sep 30, 2026
- Versions
- 2