mpv系列のプレイヤーでBasic認証が突破できなくなった
マジでよくわかんないです 助けてください #help libmpvにバグレポしていいの?
概要
https://gyazo.com/c68c83a63b48877531e64897c9a50ac0
それがここ数日でこれになった
https://gyazo.com/6b64d383f8c687ea919154e73b15e5da
ヘッダーを見てみるとAuthorizationがない
多分本来は適切にURLを見てAuthorization Headerに変換するべき
https://gyazo.com/74a747c9e77983a62b42d011b39af5cb
VLCはきちんとURLを見てauthorizationをつけている
よくわからん
前までアクセスできていた点
急にAuthorizationヘッダが送られなくなった?そんなことある?
この場合はマジでバグだし、けどバグIssue見当たらないんだよな
それっぽいCHANGELOGは見つけられず
RequestURLに含まれている場合がある、これってサーバ側でどう解釈するんだ
https://gyazo.com/6544fabf5cb503ffbd8989a455d2d27d
サーバに届いたリクエストではbbb:bbb@を解釈できない
本当に届いているのに見られない?
送ってすらいない?
暫定の回避策
nginxの$arg_tokenとかをset_proxy_header Authorization "Basic $arg_token"で割り当ててWUI側からクエリパラメータで渡すようにする oauth2-proxyのreverse_proxy=trueの場合
proxy_passに対してoauth2-proxyを設定、upstreamに従来proxy_passを設定
code:oauthproxy.cfg
htpasswd_file = "/どっか/htpasswd"
code:nginx-oauth.conf
location / {
set $auth $http_authorization;
if ($arg_basic) {
set $auth "Basic $arg_basic"; // ?basic=token -> Authorization: Basic token
}
proxy_set_header Authorization $auth;
}
auth_requestの場合
code:oauthproxy.cfg
htpasswd_file = "/どっか/htpasswd"
code:nginx-oauth.conf
location = /oauth2/auth {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
# nginx auth_request includes headers but not body
proxy_set_header Authorization $auth; // auth_request呼び出し元の$authが参照できる
proxy_set_header Content-Length "";
proxy_pass_request_body off;
}
location / {
set $auth $http_authorization;
if ($arg_basic) {
set $auth "Basic $arg_basic";
}
auth_request /oauth2/auth;
error_page 401 = /oauth2/sign_in;
}