方法を行いました。
今回は、誰からでも設定を変更されないように、
認証機能をつけてみます。
まず仕様としては、機器の設定にローカルネットワークからの
接続のみを想定してますので、比較的に単純なBASIC認証を
設定してみます。
そこで、これまで server_class クラスのハンドラに認証機能を追加します。
PAGE_KEY = 'Onxxxxxxx=='
class MyHandler(s.BaseHTTPRequestHandler):
def do_AUTHHEAD(self):
self.send_response(401)
self.send_header("WWW-Authenticate", "Basic realm=\"Please enter your user information\"")
self.send_header("Content-type", "text/html")
self.end_headers()
return
def do_GET(self):
global PAGE_KEY
chk_pass = False
if (self.headers.get("Authorization") == None):
self.do_AUTHHEAD()
self.wfile.write('no auth user received'.encode("utf-8"))
pass
elif self.headers.get("Authorization") == "Basic " + PAGE_KEY:
chk_pass = True
else:
self.do_AUTHHEAD()
self.wfile.write((self.headers.get("Authorization")).encode("utf-8"))
self.wfile.write('not authenticated'.encode("utf-8"))
pass
パスワードを入力しないとページが表示されないようにすることができます。
次回は、パスワードの生成を考えてみます。
0 件のコメント:
コメントを投稿