/
githubmirror
/
origin
Обзор
Документация
Войти
/
githubmirror
/
origin
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
vendor/github.com/Azure/go-ntlmssp/authheader.go
66 строк
1 KB
Maciej Szulik
Update dependencies
07 ноя 2022, 15:21
Не верифицирован
07 ноя 2022, 15:21
06e50a1
Код
Авторство
О чём код?
package ntlmssp import ( "encoding/base64" "strings" ) type authheader []string func (h authheader) IsBasic() bool { for _, s := range h { if strings.HasPrefix(string(s), "Basic ") { return true } } return false } func (h authheader) Basic() string { for _, s := range h { if strings.HasPrefix(string(s), "Basic ") { return s } } return "" } func (h authheader) IsNegotiate() bool { for _, s := range h { if strings.HasPrefix(string(s), "Negotiate") { return true } } return false } func (h authheader) IsNTLM() bool { for _, s := range h { if strings.HasPrefix(string(s), "NTLM") { return true } } return false } func (h authheader) GetData() ([]byte, error) { for _, s := range h { if strings.HasPrefix(string(s), "NTLM") || strings.HasPrefix(string(s), "Negotiate") || strings.HasPrefix(string(s), "Basic ") { p := strings.Split(string(s), " ") if len(p) < 2 { return nil, nil } return base64.StdEncoding.DecodeString(string(p[1])) } } return nil, nil } func (h authheader) GetBasicCreds() (username, password string, err error) { d, err := h.GetData() if err != nil { return "", "", err } parts := strings.SplitN(string(d), ":", 2) return parts[0], parts[1], nil }