Go, базовая аутентификация доступа - PullRequest
2 голосов
/ 20 января 2012

Поддерживает ли Google Go декодирование обычной аутентификации доступа вызовов? Как я могу получить имя пользователя и пароль из http.Request?

Ответы [ 2 ]

2 голосов
/ 21 января 2012

Go не перехватывает обычную аутентификацию, когда она вводится в браузере как URL-адрес, но позволяет получить ее из других приложений, вызывающих ее.

Например, используя простой код Python для HTTP JSON RPC :

from jsonrpc import ServiceProxy
access = ServiceProxy("http://user:pass@127.0.0.1:8080/")
print access.getinfo()

А в Go звоню:

// r *http.Request
r.Header["Authorization"]

Получается эта строка:

[Basic dXNlcjpwYXNz]

И

dXNlcjpwYXNz

Base-64 декодирует дает

user:pass

Так что возможна некоторая базовая аутентификация в Go, хотя на нее нельзя положиться.

0 голосов
/ 20 января 2012

Кажется, что нет способа получить предоставленную пользователем информацию для аутентификации, но вы можете предоставить действительное имя пользователя и пароль для HTTP Basic Authentication, позвонив по номеру SetBasicAuth.

...